home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1024.txt < prev    next >
Text File  |  1997-04-01  |  122KB  |  4,143 lines

  1.  
  2. Network Working Group                                        C.Partridge
  3. Request For Comment: 1024                                       BBN/NNSC
  4.                                                               G. Trewitt
  5.                                                                 Stanford
  6.                                                             October 1987
  7.  
  8.                        HEMS VARIABLE DEFINITIONS
  9.  
  10. STATUS OF THIS MEMO
  11.  
  12.    This memo assigns instruction codes, defines object formats and
  13.    object semantics for use with the High-Level Monitoring and Control
  14.    Language, defined in RFC-1023.
  15.  
  16.    This memo is provisional and the definitions are subject to change.
  17.    Readers should confirm that they have the most recent version of the
  18.    memo.
  19.  
  20.    The authors assume a working knowledge of the ISO data encoding
  21.    standard, ASN.1, and a general understanding of the IP protocol
  22.    suite.
  23.  
  24.    Distribution of this memo is unlimited.
  25.  
  26. INTRODUCTION
  27.  
  28.    In other memos [RFC-1021, RFC-1022] the authors have described a
  29.    general system for monitoring and controlling network entities; this
  30.    system is called the High-Level Entity Management System (HEMS).
  31.    This system permits applications to read and write values in remote
  32.    entities which support a simple query processor.
  33.  
  34.    In this memo we standardize the language instruction codes, the
  35.    objects which can be read or written, and the meanings of any
  36.    constants stored in the objects.  There are three parts to this
  37.    standardization: (1) the assignment of an ASN.1 tag to each value,
  38.    (2) the definition of the external representation of the value (e.g.,
  39.    INTEGER, OCTETSTRING, etc.), and (3) the definition of the meaning,
  40.    or semantics of a value (e.g., what types of packets a particular
  41.    packet counter actually tracks).
  42.  
  43.    This definition is provisional, and the authors hope that it will be
  44.    expanded and improved as the community becomes more experienced with
  45.    HEMS.  Readers with suggestions for additional object definitions, or
  46.    improved definitions are encouraged to contact the authors.
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Partridge & Trewitt                                             [Page 1]
  54.  
  55. RFC 1024                    HEMS Definitions                October 1987
  56.  
  57.  
  58. MESSAGE FORMATS
  59.  
  60.    All HEMS values are conveyed between applications and entities using
  61.    the High-Level Entity Management Protocol (HEMP) specified in RFC-
  62.    1022.  All values specified in this memo are passed in the data
  63.    sections of HEMP messages.  For all message types, the data section
  64.    is a SEQUENCE of objects.  For requests, these objects are operations
  65.    and their operands.  Replies contain a sequence of objects retrieved
  66.    by a request.  Events contain an initial event object followed by an
  67.    optional number of objects related to the event.
  68.  
  69.    Messages conforming to this memo should set the link field in the
  70.    HEMP CommonHeader to 1, to indicate version 1 of HEMS.  The
  71.    resourceId field should be set to NULL.
  72.  
  73.  
  74. CONTROL LANGUAGE INSTRUCTIONS
  75.  
  76.    The HEMS Monitoring and Control Language defines a suite of
  77.    operations which the query processor must be able to perform.  These
  78.    operations and their operands are ASN.1 objects which are passed to
  79.    the query processor over a network connection.  The operations and
  80.    operands are sent in postfix form (the operation follows the
  81.    operands). Operands are pushed onto a stack and are processed when
  82.    the operation is encountered.
  83.  
  84.    To ensure that operations are easily recognized in the input stream,
  85.    they are all encoded in a single application-specific type.  This
  86.    type is shown below.
  87.  
  88.                Operation ::= [APPLICATION 1] IMPLICIT INTEGER {
  89.                        reserved(0), get(1) begin(2), end(3),
  90.                        get-match(4), get-attributes(5),
  91.                        get-attributes-match(6), get-range(7),
  92.                        set(8), set-match(9)
  93.                    }
  94.  
  95.    When the query processor encounters an Operation object it consults
  96.    the value to determine which operation is to be done (e.g., GET).
  97.  
  98. GENERAL COMMENTS ON OBJECTS STORED IN ENTITIES
  99.  
  100.    The High-Level Monitoring and Control Language requires the object
  101.    space to have a tree-shaped type space.  Locating a particular object
  102.    requires identifying that section of the tree in which the object
  103.    resides.  (A more detailed explanation of the scheme is given in
  104.    RFC-1023).
  105.  
  106.  
  107.  
  108.  
  109. Partridge & Trewitt                                             [Page 2]
  110.  
  111. RFC 1024                    HEMS Definitions                October 1987
  112.  
  113.  
  114.    This memo defines a universal type space.  A subset of this type
  115.    space is expected to be an appropriate type space for any entity
  116.    (e.g., a gateway or a multi-user host).  The type space is divided
  117.    into required and optional portions.  Implementors should implement
  118.    the required portion of the type space plus that part of the optional
  119.    type space which is appropriate for their particular entity.
  120.  
  121.    One problem with defining a universal type space is that certain
  122.    interesting objects are not universal, but are instead very machine
  123.    specific (for example, status registers on specialized hardware).  To
  124.    allow implementors to retrieve such implementation-specific objects
  125.    using the HEMS system, a special APPLICATION type is reserved for
  126.    non-standard values.
  127.  
  128.    Putting objects in ASN.1 form implies an ability to map to and from
  129.    ASN.1 format.  One of the design goals of this system has been to
  130.    minimize the amount of ASN.1 compilation required by the query
  131.    processor to reduce the expense of processing queries at entities.
  132.    (This implies a certain willingness to force the applications
  133.    querying entities to be more powerful).  We expect that most of the
  134.    complex mapping will be done when objects are read; most writable
  135.    objects have a simple format (e.g., an INTEGER, or OCTETSTRING).  As
  136.    a result, we have made a heavy use of the ASN.1 SET type, which
  137.    allows values to be presented in any order.  Applications which
  138.    require particular fields in an object may use the template structure
  139.    to specify particular fields to be retrieved, but this still permits
  140.    the query processor to return the fields in whatever order is
  141.    convenient.
  142.  
  143.    In addition to ease the problems of ASN.1 compilation, query
  144.    processors are not required to reduce an INTEGER to the minimum
  145.    number of octets as specified in ASN.1.  Applications should be
  146.    prepared to receive INTEGERs which have leading octets with all zeros
  147.    or ones.
  148.  
  149.    More generally, a design goal of HEMS was to try to limit the data
  150.    processing done at the entity, and to place the burden of data
  151.    reduction on the querying application.  As a result, the objects
  152.    presented here are typically counters, or values which the entity has
  153.    to compute already.  Object definitions which require the entity to
  154.    do data reduction are not supported, although consideration might be
  155.    given to making them optionally available.
  156.  
  157.    Finally, HEMS is required to support access by multiple network
  158.    management centers or applications.  This constraint has some
  159.    important consequences.  First, the SET operation cannot be applied
  160.    to any Counter, since changing the value of a Counter may impair data
  161.    acquisition by other centers.  More generally, there are questions
  162.  
  163.  
  164.  
  165. Partridge & Trewitt                                             [Page 3]
  166.  
  167. RFC 1024                    HEMS Definitions                October 1987
  168.  
  169.  
  170.    about competing or clashing SET requests from management centers.
  171.    Currently HEMS does not provide any facilities for protecting against
  172.    such requests.  If such facilities become necessary, the authors
  173.    envision the enhancement of the object definitions to incorporate the
  174.    idea of "owned" objects.
  175.  
  176.  
  177. READING THE OBJECT DEFINITIONS
  178.  
  179.    Most of the rest of this memo is devoted to ennumerating the objects
  180.    managed by the query processor.  Many of these objects are
  181.    dictionaries, objects which reference other objects.  Defining
  182.    dictionaries requires that we specify the class of objects they
  183.    reference.
  184.  
  185.    Most significant objects, such as packet counts, reside at the leaves
  186.    of the object data tree.  They need to be carefully defined to ensure
  187.    that their meaning is consistent across all HEMS implementations.
  188.    These values are defined using the following format:
  189.  
  190.  
  191.    OBJECT:  This is the name of the object.
  192.  
  193.    Type:  This is the ASN.1 type of the object.
  194.  
  195.    Definition:  The meaning of the data the object contains.
  196.            Implementations should ensure that their instance of
  197.            the object fulfills this definition since an important
  198.            feature of HEMS is that objects have consistent meaning
  199.            across all machines.  It is better not to implement
  200.            an object than to abuse its definition.
  201.  
  202.    Notes:  An optional section of the definition which is used
  203.            to discuss issues not covered in other sections of
  204.            this specification.
  205.  
  206.    Object Status:  An optional section of the definition which
  207.            is used to indicate whether the object is required of all
  208.            HEMS implementations, encouraged of HEMS implementations
  209.            or simply considered useful.  Currently, there are four
  210.            levels of status:
  211.  
  212.                Required:  The object is felt to provide critical
  213.                information and must be included in a fully
  214.                conforming HEMS implementation.
  215.  
  216.                Required On Condition:  The object is felt to
  217.                provide critical information about an optional
  218.  
  219.  
  220.  
  221. Partridge & Trewitt                                             [Page 4]
  222.  
  223. RFC 1024                    HEMS Definitions                October 1987
  224.  
  225.  
  226.                feature of an IP entity (for example, support of
  227.                the Transmission Control Protocol).  The object
  228.                is required if the feature is implemented in the
  229.                entity.
  230.  
  231.                Encouraged:  The object is felt to provide very
  232.                useful management information and implementors
  233.                are encouraged to implement it.
  234.  
  235.                Defined:  The object may be useful and has been
  236.                defined so that all implementations of the object
  237.                are consistent.
  238.  
  239.            If the object status is not specified, the object should
  240.            be considered required.  If the parent dictionary is optional,
  241.            then the object should be considered required if the parent
  242.            dictionary is supported.
  243.  
  244.    Operations on Object:  The definition of how each monitoring
  245.            and control operation acts on the object.  Many operations
  246.            have the same effect on almost all values, so some
  247.            default definitions are presented here.  In the absence
  248.            of an operation specification, implementors should use
  249.            the default operations defined here.
  250.  
  251.            BEGIN:  The default is for BEGIN to be defined for
  252.                dictionaries, and an error if performed on leaf
  253.                objects in the tree.
  254.  
  255.            CREATE:  The default is that CREATE is undefined.
  256.  
  257.            DELETE:  The default is that DELETE is undefined.
  258.  
  259.            END:  END is a stack operation and is defined for all objects.
  260.                Note that END may fail if there is no object on the
  261.                stack.
  262.  
  263.  
  264.            GET-ATTRIBUTES:  The default is that GET-ATTRIBUTES is
  265.                defined on the contents of all dictionaries specified
  266.                in this memo.  The text description attributes
  267.                are optional for values defined in this memo, but
  268.                are required for implementation-specific objects.
  269.                Any descriptions of object listed in this memo should
  270.                cite this memo.  GET-ATTRIBUTES must be supported on
  271.                all entity-specific values.  GET-ATTRIBUTES
  272.                returns a Attributes object, which is defined in
  273.                the well-known types section below.
  274.  
  275.  
  276.  
  277. Partridge & Trewitt                                             [Page 5]
  278.  
  279. RFC 1024                    HEMS Definitions                October 1987
  280.  
  281.  
  282.            GET-ATTRIBUTES-MATCH:  The default is that
  283.                GET-ATTRIBUTES-MATCH is optionally defined on any
  284.                object which supports GET-MATCH, and is an error
  285.                otherwise.  The rules for attributes returned by
  286.                GET-ATTRIBUTES-MATCH are the same as those for
  287.                GET-ATTRIBUTES.
  288.  
  289.            GET:  The default definition of GET is to emit the operand
  290.                specified is a leaf object, and if the operand is a
  291.                dictionary, to recursively GET the entire dictionary and
  292.                its subdictionaries.
  293.  
  294.            GET-MATCH:  Unless otherwise specified, GET-MATCH is not
  295.                supported on an object.
  296.  
  297.            GET-RANGE:  Unless otherwise specified, GET-RANGE is not
  298.                supported on an object.
  299.  
  300.            SET:  Unless otherwise specified, SET is not supported on an
  301.                object.
  302.  
  303.            SET-MATCH:  Unless otherwise specified, SET-MATCH is not
  304.                supported on an object.
  305.  
  306.  
  307. ATTRIBUTES
  308.  
  309.    HEMS requires that remote applications be able to discover the
  310.    meaning of an object by querying the entity in which the object is
  311.    stored.  This is done through use of the GET-ATTRIBUTES operator,
  312.    which causes an Attributes object to be returned to the application.
  313.    The Attributes object is described below.
  314.  
  315.            Attributes ::= [APPLICATION 2] IMPLICIT SEQUENCE {
  316.                tagASN1       [0] IMPLICIT INTEGER,
  317.                valueFormat   [1] IMPLICIT INTEGER,
  318.                longDesc      [2] IMPLICIT IA5String OPTIONAL,
  319.                shortDesc     [3] IMPLICIT IA5String OPTIONAL,
  320.                unitsDesc     [4] IMPLICIT IA5String OPTIONAL,
  321.                precision     [5] IMPLICIT INTEGER OPTIONAL,
  322.                properties    [6] IMPLICIT BITSTRING OPTIONAL,
  323.            }
  324.  
  325.    The meanings of the various attributes are given below.
  326.  
  327.            tagASN1:  The ASN.1 tag for this object.
  328.                This attribute is required.
  329.  
  330.  
  331.  
  332.  
  333. Partridge & Trewitt                                             [Page 6]
  334.  
  335. RFC 1024                    HEMS Definitions                October 1987
  336.  
  337.  
  338.            valueFormat:  The underlying ASN.1 type of the object
  339.                (e.g., SEQUENCE, or OCTETSTRING).  This attribute
  340.                is required.
  341.  
  342.            longDesc:  A potentially lengthy text description which
  343.                fully defines the object.  This attribute is optional
  344.                for objects defined in this memo and required for
  345.                entity-specific objects.
  346.  
  347.            shortDesc:  A short mnemonic string of less than 15 octets
  348.                which is suitable for labelling the value on a display.
  349.                This attribute is optional.
  350.  
  351.            unitsDesc:  A short string used for integer values to
  352.                indicate the units in which the value is measured
  353.                (e.g. "ms", "sec", "packets", etc).  This attribute
  354.                is optional.
  355.  
  356.            precision:  For Counter objects, the value at which the
  357.                Counter will roll-over.  Required for all Counter
  358.                objects.
  359.  
  360.            properties:  A bitstring of boolean properties of the
  361.                object.  If the bit is on, it has the given property.
  362.                This attribute is optional.  The bits currently
  363.                defined are:
  364.  
  365.                    0 -- If true, the difference between two values
  366.                        of this object is significant. For example,
  367.                        the changes in a packet count is always
  368.                        significant, it always conveys information.
  369.                        In this case, the 0 bit would be set.  On the
  370.                        other hand, the difference between two readings
  371.                        of a queue length may be meaningless.
  372.  
  373.  
  374. IMPLEMENTATION SPECIFIC TYPES
  375.  
  376.    Each vendor or implementation specific value must be contained within
  377.    an VendorSpecific object.  The format of the VendorSpecific object is
  378.    shown below.
  379.  
  380.    Type:  VendorSpecific
  381.  
  382.             VendorSpecific ::= [APPLICATION 3] IMPLICIT SET of ANY
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389. Partridge & Trewitt                                             [Page 7]
  390.  
  391. RFC 1024                    HEMS Definitions                October 1987
  392.  
  393.  
  394.    For a detailed discussion of the need for this type, see RFC 1023.
  395.  
  396. WELL-KNOWN TYPES
  397.  
  398.    There are some generally useful types which are defined across the
  399.    system and are considered well-known.  These types support abstract
  400.    notions that are frequently used in other definitions.
  401.  
  402.    TYPE: Error
  403.  
  404.            Error ::= [APPLICATION 0] IMPLICIT SEQUENCE {
  405.                errorCode INTEGER,
  406.                errorOffset INTEGER
  407.                errorDescription IA5String,
  408.            }
  409.  
  410.    The Error type is returned within reply messages when an error is
  411.    countered.  The errorCode is a number specifying a general class of
  412.    error.  The errorOffset is the octet in the query where the error was
  413.    discovered.  Note that the query starts at the first octet (octet 0)
  414.    of the HEMP data section.  The errorDescription is a text message
  415.    explaining the error.  Note that the definition of this section is
  416.    the same (except for the start of the offset) as that of the HEMP
  417.    protocol error structure and the error codes have been selected to
  418.    keep the code spaces distinct.  This is intended to ease the
  419.    processing of error messages.  The defined errorCodes are:
  420.  
  421.                100 -- Any error not listed below.
  422.  
  423.                101 -- System error.  The query processor has failed
  424.                    in some way.
  425.  
  426.                102 -- Format error.  An error has been detected in
  427.                    the input stream.
  428.  
  429.                103 -- Stack error.  A stack overflow or underflow has
  430.                    occurred.
  431.  
  432.                104 -- Instruction error.  The instruction is either
  433.                    unknown, or not supported on the object to which
  434.                    it has been applied.
  435.  
  436.                105 -- Operand error.  The wrong number of operands or
  437.                    inappropriate operands have been given to an
  438.                    instruction.
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445. Partridge & Trewitt                                             [Page 8]
  446.  
  447. RFC 1024                    HEMS Definitions                October 1987
  448.  
  449.  
  450.    TYPE:  Counter
  451.  
  452.        Counter ::= [APPLICATION 4] IMPLICIT INTEGER
  453.  
  454.    The Counter type is an unsigned integer which is defined to roll-over
  455.    to 0 when incremented past a certain value.  (The roll-over point may
  456.    be found by examining the attributes for the particular counter.)
  457.    Counter sizes should be chosen such that the counters will not roll
  458.    over more than once every 24 hours.
  459.  
  460.    TYPE:  InstructionGroup
  461.  
  462.        InstructionGroup ::= [APPLICATION 5] IMPLICIT SEQUENCE
  463.            of ANY
  464.  
  465.    An InstructionGroup is an encapsulated sequence of operands and
  466.    operations.  It allows applications to encode queries as objects.
  467.  
  468.    TYPE:  Histogram
  469.  
  470.        Histogram ::= SET of HistEntry
  471.  
  472.        HistEntry ::= SEQUENCE {
  473.            histValue INTEGER,
  474.            histCount Counter
  475.        }
  476.  
  477.    A Histogram associates a count, histCount, with a numeric value,
  478.    histValue.  No meaning is placed on the count or value by this
  479.    definition.  Each HistEntry may represent a simple map (e.g.,
  480.    histCount instances of histValue), or a more complex relationship
  481.    (e.g., a count of all values between this histValue and the next
  482.    lowest histValue in the Histogram).  The meaning of the particular
  483.    Histogram is given in the object definition.
  484.  
  485.    TYPE: TrafficMatrix
  486.  
  487.        TrafficMatrix ::= SET of TrafficEntry
  488.  
  489.        TrafficEntry ::= SEQUENCE {
  490.            src IpAddress,
  491.            dst IpAddress,
  492.            count Counter
  493.        }
  494.  
  495.    A TrafficMatrix measures traffic observed between two IP addresses.
  496.    Typically it is used to count packets flowing through a gateway.
  497.  
  498.  
  499.  
  500.  
  501. Partridge & Trewitt                                             [Page 9]
  502.  
  503. RFC 1024                    HEMS Definitions                October 1987
  504.  
  505.  
  506.    TYPE:  IpAddress
  507.  
  508.        IpAddress ::= OCTETSTRING
  509.  
  510.    The 4 octet IP address.  If the length of the string is less than 4
  511.    then the missing octets are wildcarded.  A zero length string is a
  512.    default address (e.g., for indicating default routes).
  513.  
  514.  
  515.    TYPE: Fraction
  516.  
  517.        Fraction ::= INTEGER
  518.  
  519.    A Fraction is an integer representation of a fractional value.  It
  520.    contains the numerator of a value as expressed over 256.  (For
  521.    example dividing the Fraction by 256 gives the fractional value.)
  522.  
  523.    TYPE:  BootClock
  524.  
  525.        BootClock ::= INTEGER
  526.  
  527.    The time in milliseconds since the machine was last booted or reset.
  528.    This value is always defined.
  529.  
  530.    TYPE:  localClock
  531.  
  532.        LocalClock ::= INTEGER
  533.  
  534.    The local system clock, measured in milliseconds since 00:00 1
  535.    January 1900 UTC.  Assumed to be only a local estimate of the time.
  536.    The value 0 is reserved for an uninitialized clock (For example, an
  537.    uninitialized time-of-day chip.)
  538.  
  539.  
  540.    TYPE:  NetClock
  541.  
  542.        NetClock ::= INTEGER
  543.  
  544.    A network synchronized clock, which is assumed to be synchronized
  545.    across some part of a network.  The clock value is measured in
  546.    milliseconds since 00:00 1 January 1900 UTC.  Specific information
  547.    about the synchronization protocol is found in the system variable
  548.    dictionary.  The value 0 is used to indicate an uninitialized clock.
  549.  
  550.    TYPE: TimeStamp
  551.  
  552.        TimeStamp ::= CHOICE {
  553.            [0] BootClock
  554.  
  555.  
  556.  
  557. Partridge & Trewitt                                            [Page 10]
  558.  
  559. RFC 1024                    HEMS Definitions                October 1987
  560.  
  561.  
  562.            [1] localClock
  563.            [2] NetClock
  564.        }
  565.  
  566.    A TimeStamp, which was taken from the boot clock, system clock or the
  567.    synchronized clock.  In general, a time of day is preferred to the
  568.    time since boot, and a synchronized clock is preferred to an
  569.    unsynchronized clock.  It is more useful to know that an event
  570.    occurred at a particular time, than that it happened so many
  571.    milliseconds after the machine booted.
  572.  
  573.  
  574. OBJECT DEFINITIONS
  575.  
  576. The Root Dictionary
  577.  
  578.    In HEMS, all data is stored in dictionaries, where a dictionary is
  579.    thought to represent a conceptual grouping of values.  The top-level
  580.    dictionary is the root dictionary.  The form of the root dictionary
  581.    for is shown below.
  582.  
  583.            RootDictionary ::= [APPLICATION 32] IMPLICIT SET {
  584.                SystemVariables,
  585.                EventControls OPTIONAL,
  586.                Interfaces,
  587.                IpNetworkLayer,
  588.                IpRoutingTable,
  589.                IpTransportLayer,
  590.                IpApplications OPTIONAL
  591.            }
  592.  
  593. The root dictionary is split into seven general dictionaries:
  594.  
  595.            - SystemVariables, which stores general system values such
  596.            as the system clock, machine memory and system up/down
  597.            status.
  598.  
  599.            - EventControls, which stores all objects necessary to
  600.            observe and control the event generating mechanism in
  601.            entities which support events.
  602.  
  603.            - interfaces, which contains all information on all
  604.            the network interfaces and IP to physical address
  605.            maps (ARP tables, X.25 Standard mappings, etc).
  606.  
  607.            - IpNetworkLayer, which contains information about the
  608.            workings of the IP layer.  This includes information such
  609.            as routing tables, general packet counts, and host-traffic
  610.  
  611.  
  612.  
  613. Partridge & Trewitt                                            [Page 11]
  614.  
  615. RFC 1024                    HEMS Definitions                October 1987
  616.  
  617.  
  618.            matrices.
  619.  
  620.            - IpRoutingTable, which contains information on how the
  621.            machine routes packets.  It proved more useful to segregate
  622.            routing information than to keep it stored with the network
  623.            layer data.
  624.  
  625.            - IpTransportLayer, which stores information on the transport
  626.            protocols that the entity supports.
  627.  
  628.            - IpApplications, which may store information about various
  629.            internet applications such as the domain system.  This
  630.            section is not required of HEMS entities.
  631.  
  632.    The next several sections define the values stored in the five
  633.    dictionaries.
  634.  
  635.  
  636. The SystemVariables Dictionary
  637.  
  638.    The SystemVariables dictionary stores objects which are not strictly
  639.    protocol, network, or application specific.  Such objects include
  640.    values such as the machine load, clocks and the processor status.
  641.    The form of the dictionary is shown below.
  642.  
  643.    SystemVariables ::= [APPLICATION 33] IMPLICIT SET {
  644.        referenceClock   [0] IMPLICIT TimeStamp,
  645.        netClockInfo     [1] IMPLICIT SET OPTIONAL,
  646.        processorLoad    [2] IMPLICIT INTEGER,
  647.        entityState      [3] IMPLICIT INTEGER,
  648.        kernelMemory     [4] IMPLICIT OCTETSTRING OPTIONAL,
  649.        pktBuffers       [5] IMPLICIT INTEGER OPTIONAL,
  650.        pktOctets        [6] IMPLICIT INTEGER OPTIONAL,
  651.        pktBuffersFree   [7] IMPLICIT INTEGER OPTIONAL,
  652.        pktOctetsFree    [8] IMPLICIT INTEGER OPTIONAL
  653.        systemID         [9] IMPLICIT IA5STRING,
  654.    }
  655.  
  656.    OBJECT:  SystemVariables
  657.  
  658.    Type:  SET
  659.  
  660.    Definition:  see above
  661.  
  662.    The objects in the dictionary are defined below.
  663.  
  664.    OBJECT:  referenceClock
  665.  
  666.  
  667.  
  668.  
  669. Partridge & Trewitt                                            [Page 12]
  670.  
  671. RFC 1024                    HEMS Definitions                October 1987
  672.  
  673.  
  674.    Type:  TimeStamp
  675.  
  676.    Definition:  The system clock used for placing timestamps on
  677.        information.  Use of a NetClock is encouraged.
  678.  
  679.    Operations on Object:  Defaults.
  680.  
  681.    Notes:  Cross-network clock adjustment is best handled by a proper
  682.            time synchronization protocol, not through the use of SET.
  683.  
  684.  
  685.    OBJECT:  netClockInfo
  686.  
  687.    Type:  SET
  688.  
  689.    Definition:  Detailed information on the referenceClock if the
  690.        referenceClock is a NetClock.  The format of this
  691.        information is shown below.
  692.  
  693.        netClockInfo ::= [1] IMPLICIT SET {
  694.            estError INTEGER,
  695.            refClockType INTEGER {
  696.                unspecified(0), primary-reference(1),
  697.                ntp-secondary-reference(2), secondary-reference(3),
  698.                wristwatch(4)
  699.              }
  700.         }
  701.  
  702.         The estError is the estimated error in milliseconds.  The
  703.         refClockType is a value indicating the type of reference
  704.         clock consulted for network time  (the values are taken
  705.         directly from the Network Time Protocol specification,
  706.         RFC-958).
  707.  
  708.    Object Status:  Required if the referenceClock is a NetClock.
  709.  
  710.  
  711.    OBJECT: processorLoad
  712.  
  713.    Type:  Fraction
  714.  
  715.    Definition:  A value, expressed as a Fraction, which indicates
  716.            the current processing load on the entity.  A value of
  717.            256 (= 1.0) is defined to be running at capacity.  It
  718.            is recognized that this is an imprecise definition since
  719.            capacity can be measured in several ways.  For example,
  720.            a multiprocessor may still have plenty of capacity
  721.            even if one processor is running at capacity,
  722.  
  723.  
  724.  
  725. Partridge & Trewitt                                            [Page 13]
  726.  
  727. RFC 1024                    HEMS Definitions                October 1987
  728.  
  729.  
  730.            or it may be at capacity because that processor is the
  731.            master processor and handles all context switching.
  732.            The idea is for remote applications to be able to get some
  733.            sense of the current workload on the entity.  Also note
  734.            that the time scale of the measurement should be small.
  735.            A load measure that averages over the past 10 seconds
  736.            is acceptable but a load measure that averages over the
  737.            past 10 minutes is not.  Implementors should chose some
  738.            mapping between system load and this scale such that 256
  739.            represents a machine under severe strain.  (Note that this
  740.            suggests that values greater than 256 may be returned in
  741.            rare cases.)
  742.  
  743.    OBJECT:  entityState
  744.  
  745.    Type:  INTEGER
  746.  
  747.    Definition: An object which indicates the system state.  There are
  748.          several defined object values.  Some values are read-only and
  749.          can only be read from the object.  Over values are write-only
  750.          and will never be read from the object. Over values are
  751.          write-only and will never be read from the object.The values
  752.          are:
  753.  
  754.            The read-only values are:
  755.  
  756.                    (0) -- reserved.
  757.  
  758.                    (1) -- running.  The entity is up and running.
  759.  
  760.                    (2) -- testing.  The entity is running some sort of
  761.                        diagnostics which may affect its network
  762.                        operation.
  763.  
  764.            The write-only values are:
  765.  
  766.                    (0) -- reserved.
  767.  
  768.                    (1) -- reset the entity.
  769.  
  770.                    (2) -- reboot the entity. This value is assumed to
  771.                        cause a more aggressive recycling of the system
  772.                        than reset, though this need not be the case.
  773.  
  774.                    (3) -- halt the entity.  This value stops the
  775.                        entity.  It assumed to prevent the entity from
  776.                        operating until it is manually restarted.  (I.e.
  777.                        the halt takes the machine off the network).
  778.  
  779.  
  780.  
  781. Partridge & Trewitt                                            [Page 14]
  782.  
  783. RFC 1024                    HEMS Definitions                October 1987
  784.  
  785.  
  786.    Note:  The ability to change an entity's state requires very strong
  787.       access controls.
  788.  
  789.  
  790.    Operations on Object:  The defaults except as noted below.
  791.  
  792.        SET:  Optionally writes the value into the object.
  793.              The message requesting the SET must be authenticated.
  794.  
  795.        SET-MATCH:  Optionally writes the value into the object
  796.              if the current value is matched.
  797.  
  798.    OBJECT:  kernelMemory
  799.  
  800.    Type:  OCTETSTRING
  801.  
  802.    Definition:  A sequence of octets which represents the image of the
  803.         kernel software running on the entity.  This facility is
  804.         provided to allow remote network debugging.
  805.  
  806.         By kernel software, we mean that software which controls the
  807.         operations and access to the hardware.  In particular, the kernel
  808.         is expected to contain all network software up through the IP
  809.         layer.
  810.  
  811.         Implementations which use lightweight processes or segmented
  812.         images should consider providing some way to map their internal
  813.         representation into a single contiguous stream of octets.
  814.  
  815.    Note:  Access control is required to read this object.
  816.  
  817.    Object Status:  Useful.
  818.  
  819.    Operations on Object:  The defaults except as noted below.
  820.  
  821.        GET-RANGE:  Emits the section of memory specified.
  822.  
  823.        GET:  Emits all of memory, but note that a GET on the system
  824.            dictionary should *not* emit this object.
  825.  
  826.    OBJECT:  pktBuffers
  827.  
  828.    Type:  INTEGER
  829.  
  830.    Definition:  The total number of packet buffers in the entity.
  831.  
  832.    Object Status:  Required if the entity has a maximum number of
  833.        buffers.  Note that most entities do have a limit (even if it
  834.  
  835.  
  836.  
  837. Partridge & Trewitt                                            [Page 15]
  838.  
  839. RFC 1024                    HEMS Definitions                October 1987
  840.  
  841.  
  842.        is for practical purposes, near infinite) and should return
  843.        that limit.
  844.  
  845.    OBJECT:  pktOctets
  846.  
  847.    Type:  INTEGER
  848.  
  849.    Definition:  The maximum number of octets that can be buffered in the
  850.        entity at any one time.
  851.  
  852.    Object Status:  Required if the entity has a maximum number of octets
  853.        it can buffer.  Note that most entities do have a limit and
  854.        should return that limit.
  855.  
  856.  
  857.    OBJECT:  pktBuffersFree
  858.  
  859.    Type:  INTEGER
  860.  
  861.    Definition:  The number of packet buffers currently available.
  862.        Subtracting pktBuffersFree from pktBuffers should give the
  863.        number of buffers in use.
  864.  
  865.    Object Status:  Required if there is a limit on the number of
  866.        buffers.
  867.  
  868.  
  869.    OBJECT: pktOctetsFree
  870.  
  871.    Type: INTEGER
  872.  
  873.    Definition:  The number of octets currently available including those
  874.        not used in allocated buffers.  Subtracting this value from
  875.        pktOctets should give the number of octets in use.
  876.  
  877.        This object can be used to track how well the entity buffers its
  878.        data.
  879.  
  880.        Object Status:  Required if there is a limit on the number of
  881.        octets that can be buffered.
  882.  
  883.  
  884.    OBJECT:  systemID
  885.  
  886.    Type:  IA5STRING
  887.  
  888.    Definition:  The text identification of the entity.  This value
  889.        should include the full name of the vendor, the type of system,
  890.  
  891.  
  892.  
  893. Partridge & Trewitt                                            [Page 16]
  894.  
  895. RFC 1024                    HEMS Definitions                October 1987
  896.  
  897.  
  898.        and the version number of the hardware and software running on
  899.        the entity.
  900.  
  901.  
  902. The EventControls Dictionary
  903.  
  904.     The EventControls dictionary contains objects to control and
  905.     monitor the delivery of event messages to operations centers.
  906.     The format of this dictionary is shown below.
  907.  
  908.  
  909.        EventControls ::= [APPLICATION 34] IMPLICIT SET OPTIONAL {
  910.            lastEvent      [0] IMPLICIT OCTETSTRING OPTIONAL,
  911.            eventMessageID [1] IMPLICIT Counter,
  912.            eventCenters   [2] IMPLICIT SET of IpAddress,
  913.            eventList      [3] IMPLICIT SET of eventEntry,
  914.        }
  915.  
  916.  
  917.     OBJECT: eventControls
  918.  
  919.     Type: SET
  920.  
  921.     Definition: See above.
  922.  
  923.     Object Status:  This object will be required in entities which
  924.         support events, after the event definitions have been
  925.         properly specified.  See discussion of the event formats
  926.         at the end of this memo.
  927.  
  928.     A description of the fields in this dictionary are given below.
  929.  
  930.  
  931.     OBJECT:  lastEvent
  932.  
  933.     Type:  OCTETSTRING
  934.  
  935.     Definition:  The last event message sent.
  936.  
  937.     Object Status: Implementation of this object is encouraged if the
  938.         transport protocol used for events is unreliable (e.g., UDP).
  939.  
  940.  
  941.     OBJECT:  eventMessageID
  942.  
  943.  
  944.     Type:  Counter
  945.  
  946.  
  947.  
  948.  
  949. Partridge & Trewitt                                            [Page 17]
  950.  
  951. RFC 1024                    HEMS Definitions                October 1987
  952.  
  953.  
  954.     Definition:  The HEMP MessageId to be used in the next event
  955.         message.  Equals the number of events sent.
  956.  
  957.     OBJECT:  eventCenters
  958.  
  959.     Type:  SET of IpAddress
  960.  
  961.     Definition:  The list of IP addresses to which events are sent.
  962.         This list receives all events.  For more selective event
  963.         monitoring, centers should list themselves under the
  964.         particular events of interest.
  965.  
  966.     Note:  If the SET operator is defined then use of some form of
  967.         access control is recommended.
  968.  
  969.     Operations on Object: The defaults except as listed below.
  970.  
  971.         CREATE:  Adds an address to the list.  The new address may
  972.             not be a broadcast address (it may be a multicast
  973.             address).
  974.  
  975.         DELETE:  Deletes an address from the list.
  976.  
  977.         SET-MATCH:  Defined on the IP address.  Replaces the
  978.             address with a new value.
  979.  
  980.         EMIT-MATCH:  Defined on the IP address.
  981.  
  982.  
  983.     OBJECT:  eventList
  984.  
  985.     Type: SET of eventEntry
  986.  
  987.     Definition: An array of entries which contain objects which allow
  988.         management centers to control how and when events are sent.
  989.         (The contents of the eventEntry structure are explained below.)
  990.  
  991. The eventControls Dictionary:  eventList/eventEntry
  992.  
  993.     The eventEntry provides the necessary control objects to manage how
  994.     a particular event is sent.  The format of the eventEntry is shown
  995.     below.
  996.  
  997.             eventEntry ::= [0] IMPLICIT SET {
  998.                 eventID        [0] IMPLICIT INTEGER,
  999.                 eventMode      [1] IMPLICIT INTEGER,
  1000.                 eventCount     [2] IMPLICIT Counter,
  1001.                 threshold      [3] IMPLICIT Counter,
  1002.  
  1003.  
  1004.  
  1005. Partridge & Trewitt                                            [Page 18]
  1006.  
  1007. RFC 1024                    HEMS Definitions                October 1987
  1008.  
  1009.  
  1010.                 thresholdIncr  [4] IMPLICIT INTEGER,
  1011.                 eventExecution [5] IMPLICIT InstructionGroup OPTIONAL,
  1012.                 eventCenters   [6] IMPLICIT SET of IpAddress
  1013.             }
  1014.  
  1015.     OBJECT:  eventEntry
  1016.  
  1017.     Type:  SET
  1018.  
  1019.     Definition:  See Above.
  1020.  
  1021.  
  1022.     OBJECT:  eventID
  1023.  
  1024.     Type:  INTEGER
  1025.  
  1026.     Definition:  The particular event ID.
  1027.  
  1028.  
  1029.     OBJECT:  eventMode
  1030.  
  1031.     Type:  INTEGER
  1032.  
  1033.     Definition:  A control object which determines how and whether this
  1034.         event is sent.  The three modes are:
  1035.  
  1036.            0 -- unused.
  1037.  
  1038.            1 -- off.  The event is not sent.
  1039.  
  1040.            2 -- on.   The event is sent every time it occurs.
  1041.  
  1042.            3 -- threshold.  The event is sent every time the
  1043.                 event count reaches the threshold.
  1044.  
  1045.  
  1046.     OBJECT:  eventCount
  1047.  
  1048.     Type:  Counter
  1049.  
  1050.     Definition:  The number of times this event has occurred.
  1051.  
  1052.  
  1053.     OBJECT:  threshold
  1054.  
  1055.     Type:  Counter
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061. Partridge & Trewitt                                            [Page 19]
  1062.  
  1063. RFC 1024                    HEMS Definitions                October 1987
  1064.  
  1065.  
  1066.     Definition: The event threshold.  If the eventMode is "threshold"
  1067.         then a event is sent every time the eventCount equals this
  1068.         value.
  1069.  
  1070.     Operations on Object:  The defaults except as noted below.
  1071.  
  1072.             SET:  Changes the threshold.
  1073.  
  1074.     OBJECT:  thresholdIncr
  1075.  
  1076.     Type:  INTEGER
  1077.  
  1078.     Definition:  The threshold increment.  Every time a event threshold
  1079.         is reached, the threshold value is incremented by this value
  1080.         (modulo the precision of the Counter) to find the new
  1081.         threshold.
  1082.  
  1083.     Operations on Object:  The defaults except as noted below.
  1084.  
  1085.             SET:  Changes the increment.
  1086.  
  1087.  
  1088.     OBJECT:  eventExecution
  1089.  
  1090.     Type:  InstructionGroup
  1091.  
  1092.     Definition:  A query to be executed whenever the event is actually
  1093.         sent.  Any data retrieved by this query is appended to the
  1094.         event message.
  1095.  
  1096.     Object Status:  Encouraged.
  1097.  
  1098.     Operations on Object:  The defaults except as noted below.
  1099.  
  1100.             SET:  Changes the buffer.
  1101.  
  1102.  
  1103.     OBJECT:  eventCenters
  1104.  
  1105.     Type:  SET
  1106.  
  1107.     Definition:  The IP addresses of the monitoring centers which wish
  1108.         to listen to this particular event.  Note that events should be
  1109.         sent to both these centers and the global list of event centers.
  1110.  
  1111.     Operations on Object:  The defaults except as noted below.
  1112.  
  1113.             CREATE:  Adds an address to the list of centers.
  1114.  
  1115.  
  1116.  
  1117. Partridge & Trewitt                                            [Page 20]
  1118.  
  1119. RFC 1024                    HEMS Definitions                October 1987
  1120.  
  1121.  
  1122.             DELETE:  Deletes an address from the list.
  1123.  
  1124.             SET-MATCH:  Defined on the IP address.  Replaces the
  1125.                 entry with a new value.
  1126.  
  1127.             EMIT-MATCH:  Defined on the IP address.
  1128.  
  1129.  
  1130. The Interfaces Dictionary
  1131.  
  1132.     The Interfaces dictionary a list of per-interface objects.  Since
  1133.     one of the fundamental goals of HEMS is to use generic interfaces
  1134.     across differing hardwares, all hardware interfaces are described by
  1135.     the same data structure, the InterfaceData.
  1136.  
  1137.          Interfaces ::= [APPLICATION 35] IMPLICIT SET OF InterfaceData
  1138.  
  1139.     OBJECT:  Interfaces
  1140.  
  1141.     Type:  SET
  1142.  
  1143.     Definition:  see above.
  1144.  
  1145.  
  1146. The Interfaces Dictionary: The InterfaceData structure.
  1147.  
  1148.     The InterfaceData structure contains all information on a particular
  1149.     interface.  The form of the structure is shown below.
  1150.  
  1151.             InterfaceData ::= [0] IMPLICIT SET {
  1152.                 addresses         [0] IMPLICIT SET of IpAddress,
  1153.                 mtu               [1] IMPLICIT INTEGER,
  1154.                 netMask           [2] IMPLICIT IpAddress,
  1155.                 pktsIn            [3] IMPLICIT Counter,
  1156.                 pktsOut           [4] IMPLICIT Counter,
  1157.                 inputPktsDropped  [5] IMPLICIT Counter,
  1158.                 outputPktsDropped [6] IMPLICIT Counter,
  1159.                 bcastPktsIn       [7] IMPLICIT Counter OPTIONAL,
  1160.                 bcastPktsOut      [8] IMPLICIT Counter OPTIONAL,
  1161.                 mcastPktsIn       [9] IMPLICIT Counter OPTIONAL,
  1162.                 mcastPktsOut     [10] IMPLICIT Counter OPTIONAL,
  1163.                 inputErrors      [11] IMPLICIT Counter,
  1164.                 outputErrors     [12] IMPLICIT Counter,
  1165.                 outputQLen       [13] IMPLICIT INTEGER,
  1166.                 name             [14] IMPLICIT IA5String,
  1167.                 status           [15] IMPLICIT INTEGER,
  1168.                 ifType           [16] IMPLICIT INTEGER,
  1169.                 mediaErrors      [17] IMPLICIT Counter OPTIONAL,
  1170.  
  1171.  
  1172.  
  1173. Partridge & Trewitt                                            [Page 21]
  1174.  
  1175. RFC 1024                    HEMS Definitions                October 1987
  1176.  
  1177.  
  1178.                 upTime           [18] IMPLICIT TimeStamp,
  1179.                 broadcast        [19] IMPLICIT BITSTRING
  1180.                 multicast        [20] IMPLICIT SET of BITSTRING,
  1181.                 addressList      [21] IMPLICIT SET OPTIONAL,
  1182.             }
  1183.  
  1184.     OBJECT:  InterfaceData
  1185.  
  1186.     Type:  SET
  1187.  
  1188.     Definition:  see above.
  1189.  
  1190.     Operations on Object:  The defaults except as noted below.
  1191.  
  1192.         SET-MATCH:  This operation is optionally defined on the
  1193.             address field of the structure.  Only certain fields
  1194.             in this structure may be changed.  The fields which
  1195.             may be SET are indicated in the descriptions below.
  1196.  
  1197.         GET-MATCH:  Defined to emit information on the interface
  1198.             which matches the address given.
  1199.  
  1200.     The fields in the structure are defined below.
  1201.  
  1202.  
  1203.     OBJECT:  addresses
  1204.  
  1205.     Type:  SET of IpAddress
  1206.  
  1207.     Definition:  The IP addresses that the interface accepts.  Note that
  1208.         additional information on multicast addresses may be found in
  1209.         the IgmpValues dictionary.
  1210.  
  1211.  
  1212.     OBJECT:  mtu
  1213.  
  1214.     Type:  INTEGER
  1215.  
  1216.     Definition:  The maximum transmission unit of the device.
  1217.  
  1218.  
  1219.     OBJECT:  netMask
  1220.  
  1221.     Type:  IpAddress
  1222.  
  1223.     Definition:  The subnet mask, which is an address with all the
  1224.         network bits set to 1 and all the hosts bits set to 0.  Used to
  1225.         identify subnets.
  1226.  
  1227.  
  1228.  
  1229. Partridge & Trewitt                                            [Page 22]
  1230.  
  1231. RFC 1024                    HEMS Definitions                October 1987
  1232.  
  1233.  
  1234.     OBJECT:  pktsIn
  1235.  
  1236.     Type:  Counter
  1237.  
  1238.     Definition:  The total number of packets received on this interface
  1239.         including those in error.
  1240.  
  1241.  
  1242.     OBJECT:  pktsOut
  1243.  
  1244.     Type:  Counter
  1245.  
  1246.     Definition:  The total number of packets that higher levels have
  1247.         attempted to send, including those that were not sent.
  1248.  
  1249.  
  1250.     OBJECT:  inputPktsDropped
  1251.  
  1252.     Type:  Counter
  1253.  
  1254.     Definition:  The number of good inbound packets dropped (presumably
  1255.         to free up buffer space).
  1256.  
  1257.     OBJECT:  outputPktsDropped
  1258.  
  1259.     Type:  Counter
  1260.  
  1261.     Definition:  The number of good outbound packets dropped (presumably
  1262.         to free up buffer space).
  1263.  
  1264.     OBJECT:  bcastPktsIn
  1265.  
  1266.     Type:  Counter
  1267.  
  1268.     Definition:  The number of broadcast packets received including
  1269.         those in error.
  1270.  
  1271.     Object Status:  Encouraged on interfaces that support broadcast.
  1272.  
  1273.  
  1274.     OBJECT:  bcastPktsOut
  1275.  
  1276.     Type:  Counter
  1277.  
  1278.     Definition:  The number of broadcast packets that higher levels
  1279.         attempted to send, including those that were not sent.
  1280.  
  1281.     Object Status:  Encouraged on interfaces that support broadcast.
  1282.  
  1283.  
  1284.  
  1285. Partridge & Trewitt                                            [Page 23]
  1286.  
  1287. RFC 1024                    HEMS Definitions                October 1987
  1288.  
  1289.  
  1290.     OBJECT:  mcastPktsIn
  1291.  
  1292.     Type:  Counter
  1293.  
  1294.     Definition:  The number of multicast packets received including
  1295.         those in error.
  1296.  
  1297.     Object Status:  Encouraged on interfaces that support multicast.
  1298.  
  1299.  
  1300.  
  1301.     OBJECT:  mcastPktsOut
  1302.  
  1303.     Type:  Counter
  1304.  
  1305.     Definition: The number of multicast packets sent, including those
  1306.         that were not sent.
  1307.  
  1308.     Object Status:  Encouraged on interfaces that support multicast.
  1309.  
  1310.  
  1311.     OBJECT:  inputErrors
  1312.  
  1313.     Type:  Counter
  1314.  
  1315.     Definition: The number of inbound packets that could not be
  1316.         delivered.  The number of inbound packets delivered
  1317.         should equal inputPkts less this value and inputPktsDropped.
  1318.  
  1319.     OBJECT:  outputErrors
  1320.  
  1321.     Type:  Counter
  1322.  
  1323.     Definition:  The number of outbound packets that could not be
  1324.         transmitted because of errors.  The number of outbound
  1325.         packets placed on the network should equal outputPkts
  1326.         less this value and outputPktsDropped.
  1327.  
  1328.     OBJECT:  outputQLen
  1329.  
  1330.     Type:  INTEGER
  1331.  
  1332.     Definition:  The length of the output packet queue (in packets).
  1333.  
  1334.  
  1335.     OBJECT:  name
  1336.  
  1337.     Type:  IA5String
  1338.  
  1339.  
  1340.  
  1341. Partridge & Trewitt                                            [Page 24]
  1342.  
  1343. RFC 1024                    HEMS Definitions                October 1987
  1344.  
  1345.  
  1346.     Definition:  A text string completely identifying the interface.
  1347.         This string should include the name of the manufacturer, the
  1348.         product name and the version of the hardware.
  1349.  
  1350.     OBJECT:  status
  1351.  
  1352.     Type:  INTEGER
  1353.  
  1354.     Definition:  The status of the object.  The status values are:
  1355.  
  1356.                 0 -- reserved
  1357.                 1 -- testing (the interface is in some test mode)
  1358.                 2 -- down  (the interface is down)
  1359.                 3 -- up  (the interface is up ready to pass packets)
  1360.  
  1361.     Note:  If set operations are defined, access control is required.
  1362.  
  1363.     Operations on Object:  The defaults except as noted below.
  1364.  
  1365.        SET:  Optionally defined to change the state of the interface.
  1366.  
  1367.     OBJECT:  ifType
  1368.  
  1369.     Type:  INTEGER
  1370.  
  1371.     Definition: A flag which indicates the type of interface in use.  The
  1372.         currently defined types are:
  1373.  
  1374.                      0 -- reserved
  1375.                      1 -- 1822 HDH
  1376.                      2 -- 1822
  1377.                      3 -- FDDI
  1378.                      4 -- DDN X.25
  1379.                      5 -- RFC-877 X.25
  1380.                      6 -- StarLan
  1381.                      7 -- Proteon 10Mbit
  1382.                      8 -- Proteon 80Mbit
  1383.                      9 -- Ethernet
  1384.                     10 -- 802.3 Ethernet
  1385.                     11 -- 802.4 Token Bus
  1386.                     12 -- 802.5 Token Ring
  1387.                     13 -- Point-to-Point Serial
  1388.  
  1389.     OBJECT:  mediaErrors
  1390.  
  1391.     Type:  Counter
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397. Partridge & Trewitt                                            [Page 25]
  1398.  
  1399. RFC 1024                    HEMS Definitions                October 1987
  1400.  
  1401.  
  1402.     Definition:  A counter of media errors, such as collisions on
  1403.         Ethernets, token regeneration on token passing rings, or lost
  1404.         RFNMs on PSNs.
  1405.  
  1406.     Object Status:  Encouraged for interfaces to media which have such
  1407.         errors.
  1408.  
  1409.  
  1410.     OBJECT:  upTime
  1411.  
  1412.     Type:  TimeStamp
  1413.  
  1414.     Definition:  When the interface was put in its current state.
  1415.  
  1416.  
  1417.     OBJECT:  broadcast
  1418.  
  1419.     Type:  BITSTRING
  1420.  
  1421.     Definition:  Whether this interface has a physical broadcast
  1422.         address.
  1423.  
  1424.     Object Status:  Required if the interface has a broadcast adddress.
  1425.  
  1426.  
  1427.     OBJECT:  multicast
  1428.  
  1429.     Type:  SET of BITSTRING
  1430.  
  1431.     Definition: The set of hardware multicast addresses currently
  1432.         enabled on the device.
  1433.  
  1434.     Object Status:  Encouraged in interfaces which support multicast.
  1435.  
  1436.  
  1437.  
  1438.     OBJECT:  addressList
  1439.  
  1440.     Definition:  SET of addressMap
  1441.  
  1442.          addressMap ::= [0] IMPLICIT SET {
  1443.                  ipAddr     [0] IMPLICIT IpAddress
  1444.                  physAddr   [1] IMPLICIT BITSTRING
  1445.          }
  1446.  
  1447.     Definition:  Most interfaces maintain tables mapping physical
  1448.         network address to IP address.  An example is an ARP table.
  1449.         This table stores that map as a series of entries which map
  1450.  
  1451.  
  1452.  
  1453. Partridge & Trewitt                                            [Page 26]
  1454.  
  1455. RFC 1024                    HEMS Definitions                October 1987
  1456.  
  1457.  
  1458.         IP addresses to the physical address.
  1459.  
  1460.     Object Status:  Required if the interface has to map IP addresses to
  1461.         physical addresses.
  1462.  
  1463. The IpNetworkLayer Dictionary
  1464.  
  1465.     The IpNetworkLayer dictionary contains all information about the IP
  1466.     Layer.  The format of the dictionary is shown below.
  1467.  
  1468.             IpNetworkLayer ::= [APPLICATION 36] IMPLICIT SET {
  1469.                 gateway           [0] IMPLICIT BOOLEAN,
  1470.                 inputPkts         [1] IMPLICIT Counter,
  1471.                 inputErrors       [2] IMPLICIT Counter,
  1472.                 inputPktsDropped  [3] IMPLICIT Counter,
  1473.                 inputQLen         [4] IMPLICIT INTEGER OPTIONAL,
  1474.                 outputPkts        [5] IMPLICIT Counter,
  1475.                 outputErrors      [6] IMPLICIT Counter,
  1476.                 outputPktsDropped [7] IMPLICIT Counter,
  1477.                 outputQLen        [8] IMPLICIT INTEGER OPTIONAL,
  1478.                 ipID              [9] IMPLICIT Counter,
  1479.                 fragCreated       [10] IMPLICIT Counter OPTIONAL,
  1480.                 fragRcvd          [11] IMPLICIT Counter OPTIONAL,
  1481.                 fragDropped       [12] IMPLICIT Counter OPTIONAL,
  1482.                 pktsReassembled   [13] IMPLICIT Counter OPTIONAL,
  1483.                 pktsFragmented    [14] IMPLICIT Counter OPTIONAL,
  1484.                 htm               [15] IMPLICIT TrafficMatrix OPTIONAL,
  1485.                 itm               [16] IMPLICIT TrafficMatrix OPTIONAL
  1486.             }
  1487.  
  1488.     OBJECT:  IpNetworkLayer
  1489.  
  1490.     Type:  SET
  1491.  
  1492.     Definition:  See above.
  1493.  
  1494.  
  1495.     The fields of the dictionary are defined below.
  1496.  
  1497.  
  1498.     OBJECT:  gateway
  1499.  
  1500.     Type:  BOOLEAN
  1501.  
  1502.     Definition: A boolean value which is true if the entity gateways
  1503.         packets.
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509. Partridge & Trewitt                                            [Page 27]
  1510.  
  1511. RFC 1024                    HEMS Definitions                October 1987
  1512.  
  1513.  
  1514.     OBJECT: inputPkts
  1515.  
  1516.     Type: Counter
  1517.  
  1518.     Definition: The total number of input packets received including
  1519.         those in error.
  1520.  
  1521.  
  1522.     OBJECT: inputErrors
  1523.  
  1524.     Type: Counter
  1525.  
  1526.     Definition:  The number of input packets discarded due to errors
  1527.         (unknown protocols, format errors, etc).
  1528.  
  1529.  
  1530.     OBJECT:  inputPktsDropped
  1531.  
  1532.     Type:  Counter
  1533.  
  1534.     Definition: The number of input packets dropped for lack of buffer
  1535.         space.
  1536.  
  1537.  
  1538.     OBJECT:  inputQLen
  1539.  
  1540.     Type:  INTEGER
  1541.  
  1542.     Definition:  The number of inbound packets currently waiting to be
  1543.         processed by the IP layer.
  1544.  
  1545.     Object Status:  Encouraged.
  1546.  
  1547.  
  1548.     OBJECT:  outputPkts
  1549.  
  1550.     Type:  Counter
  1551.  
  1552.     Definition:  The total number of outbound packets including both
  1553.         those packets presented to the IP layer by higher layers and
  1554.         packets which are gatewayed.
  1555.  
  1556.  
  1557.     OBJECT:  outputErrors
  1558.  
  1559.     Type:  Counter
  1560.  
  1561.     Definition:  The number of output packets discarded because of
  1562.  
  1563.  
  1564.  
  1565. Partridge & Trewitt                                            [Page 28]
  1566.  
  1567. RFC 1024                    HEMS Definitions                October 1987
  1568.  
  1569.  
  1570.         errors (unable to route, format errors, etc).
  1571.  
  1572.  
  1573.     OBJECT:  outputPktsDropped
  1574.  
  1575.     Type: Counter
  1576.  
  1577.     Definition:  The number of output packets dropped for lack of
  1578.         buffer space.
  1579.  
  1580.  
  1581.     OBJECT:  outputQLen
  1582.  
  1583.     Type:  INTEGER
  1584.  
  1585.     Definition: The number of outbound packets waiting to be processed
  1586.         by the IP layer.
  1587.  
  1588.     Object Status:  Encouraged.
  1589.  
  1590.  
  1591.     OBJECT:  ipID
  1592.  
  1593.     Type:  Counter
  1594.  
  1595.     Definition:  The next IP packet ID identifier to be used.  Note
  1596.         that in some implementations the transport layer may set the
  1597.         IP identifier, in which case this value is used if the IP
  1598.         identifier has not been set by the transport layer.
  1599.  
  1600.     OBJECT:  fragCreated
  1601.  
  1602.     Type:  Counter
  1603.  
  1604.     Definition:  The number of IP fragments created at this entity.
  1605.         (e.g., if an IP is split into three fragments at this entity,
  1606.         then this counter is incremented by three).
  1607.  
  1608.     Object Status:  Encouraged.
  1609.  
  1610.  
  1611.     OBJECT:  fragRcvd
  1612.  
  1613.     Type:  Counter
  1614.  
  1615.     Definition:  The number of IP fragments received at this entity.
  1616.  
  1617.     Object Status:  Encouraged.
  1618.  
  1619.  
  1620.  
  1621. Partridge & Trewitt                                            [Page 29]
  1622.  
  1623. RFC 1024                    HEMS Definitions                October 1987
  1624.  
  1625.  
  1626.     OBJECT:  fragDropped
  1627.  
  1628.     Type:  Counter
  1629.  
  1630.     Definition:  The number of IP fragments discarded at this entity
  1631.         for whatever reason (timed out, errors, etc).
  1632.  
  1633.     Object Status:  Encouraged.
  1634.  
  1635.  
  1636.     OBJECT:  pktsReassembled
  1637.  
  1638.     Type:  Counter
  1639.  
  1640.     Definition:  The number of IP datagrams that have been reassembled
  1641.         at this entity.
  1642.  
  1643.     Object Status:  Encouraged
  1644.  
  1645.  
  1646.     OBJECT:  pktsFragmented
  1647.  
  1648.     Type:  Counter
  1649.  
  1650.     Definition:  The number of IP datagrams that have been fragmented
  1651.         at this entity.
  1652.  
  1653.     Object Status:  Encouraged.
  1654.  
  1655.  
  1656.     OBJECT:  htm
  1657.  
  1658.     Type:  TrafficMatrix
  1659.  
  1660.     Definition:  A host traffic matrix, mapping all traffic switched any
  1661.         pair of sources and destinations.  The count in each trafficEntry
  1662.         routeDst is expressed in packets.  Source routed IP packets
  1663.         should be logged as being between their source and the
  1664.         destination (i.e., they should not be treated as destined for
  1665.         this entity).
  1666.  
  1667.     Notes:  This information may be considered sensitive.
  1668.  
  1669.     Object Status:  Encouraged in gateways.
  1670.  
  1671.  
  1672.  
  1673.     OBJECT:  itm
  1674.  
  1675.  
  1676.  
  1677. Partridge & Trewitt                                            [Page 30]
  1678.  
  1679. RFC 1024                    HEMS Definitions                October 1987
  1680.  
  1681.  
  1682.     Type:  TrafficMatrix
  1683.  
  1684.     Definition: An interface traffic matrix showing traffic switched
  1685.         between interfaces in an entity.  The source and destinations
  1686.         fields are the IP addresses of the interfaces between which
  1687.         the packet was switched.  The count in each trafficEntry is
  1688.         expressed in packets.
  1689.  
  1690.     Object Status: Useful.
  1691.  
  1692.  
  1693. The IpRoutingTable Dictionary
  1694.  
  1695.     The IpRoutingTable dictionary contains all routing information.
  1696.     Note that information about any routing protocols used to maintain
  1697.     the routing table is found under the entry for the routing protocol.
  1698.     The format of the routing dictionary is shown below.
  1699.  
  1700.     IpRoutingTable ::= [APPLICATION 37] IMPLICIT SET {
  1701.             routingProtocols [0] IMPLICIT OCTETSTRING,
  1702.             coreRouter       [1] IMPLICIT BOOLEAN,
  1703.             autoSys          [2] IMPLICIT INTEGER,
  1704.             metricUsed       [3] IMPLICIT OCTET,
  1705.                              [4] RoutingEntries,
  1706.     }
  1707.  
  1708.     OBJECT:  IpRoutingTable
  1709.  
  1710.     Type:  SET
  1711.  
  1712.     Definition:  See above.
  1713.  
  1714.  
  1715.     The objects contained in the dictionary are described below.
  1716.  
  1717.     OBJECT:  routingProtocols
  1718.  
  1719.     Type:  OCTETSTRING
  1720.  
  1721.     Definition: A sparse list of the routing protocols used to update
  1722.         the routing table (e.g., EGP and ICMP).  Each octet contains one
  1723.         of the following values:
  1724.  
  1725.                     0 -- anything not specified below.
  1726.  
  1727.                     1 -- local (non-protocol) information.  (E.g.
  1728.                         routing tables can be changed by hand).
  1729.  
  1730.  
  1731.  
  1732.  
  1733. Partridge & Trewitt                                            [Page 31]
  1734.  
  1735. RFC 1024                    HEMS Definitions                October 1987
  1736.  
  1737.  
  1738.                     2 -- HEMS (was changed/set by a HEMS operation)
  1739.  
  1740.                     3 -- Internet Control Message Protocols, (i.e.
  1741.                         ICMP redirects).
  1742.  
  1743.                     4 --  Exterior Gateway Protocol (EGP).
  1744.  
  1745.                     5 -- Gateway-to-Gateway Protocol (GGP).
  1746.  
  1747.                     6 -- Dissimilar Gateway Protocol (DGP).
  1748.  
  1749.                     7 -- HELO
  1750.  
  1751.                     8 -- RIP
  1752.  
  1753.                     9 -- Proprietary IGP
  1754.  
  1755.     OBJECT: coreRouter
  1756.  
  1757.     Type:  BOOLEAN
  1758.  
  1759.     Definition:  This value is set to true if this entity is a reference
  1760.         router for any other router (i.e., if it distributes any of its
  1761.         routes to other machines).
  1762.  
  1763.  
  1764.     OBJECT:  autoSys
  1765.  
  1766.     Type:  INTEGER
  1767.  
  1768.     Definition:  The autonomous system number of the autonomous system in
  1769.         which this entity resides.
  1770.  
  1771.  
  1772.     OBJECT:  metricUsed
  1773.  
  1774.     Type:  OCTET
  1775.  
  1776.     Definition: Classifies the routing metric used in the routing table
  1777.         entries.  The value should be chosen from the list of values for
  1778.         routingProtocols above, and indicates the metric definition used
  1779.         (e.g., this entity uses an EGP metric internally).
  1780.  
  1781.  
  1782.     OBJECT:  RoutingEntries
  1783.  
  1784.     Type:  SET of RoutingEntry
  1785.  
  1786.  
  1787.  
  1788.  
  1789. Partridge & Trewitt                                            [Page 32]
  1790.  
  1791. RFC 1024                    HEMS Definitions                October 1987
  1792.  
  1793.  
  1794.     Definition:  The set of all routing entries.  The RoutingEntry is
  1795.         defined below.
  1796.  
  1797.  
  1798. The IpRoutingTable Dictionary: The RoutingEntry
  1799.  
  1800.     The RoutingEntry contains all information on a particular route.
  1801.     The format of the structure is shown below.
  1802.  
  1803.             RoutingEntry ::= [0] IMPLICIT SET {
  1804.                 routeMetric     [0] IMPLICIT INTEGER,
  1805.                 routeDst        [1] IMPLICIT IpAddress,
  1806.                 nextHop         [2] IMPLICIT IpAddress,
  1807.                 routeAuthor     [3] IMPLICIT IpAddress OPTIONAL,
  1808.                 routeproto      [4] IMPLICIT Octet OPTIONAL,
  1809.                 routeTime       [5] TimeStamp,
  1810.                 routeTOS        [6] IMPLICIT INTEGER OPTIONAL,
  1811.                 valid           [7] IMPLICIT BOOLEAN
  1812.             }
  1813.  
  1814.     OBJECT:  RoutingEntry
  1815.  
  1816.     Type:  SET
  1817.  
  1818.     Definition:  See above.
  1819.  
  1820.     Operations on Object:  Defaults except as specified below.
  1821.  
  1822.         CREATE: Adds a new routing entry.  It should be confirmed
  1823.             that the entry is new.
  1824.  
  1825.         DELETE: Deletes a routing entry.
  1826.  
  1827.         GET-MATCH:  The match operator is defined on the routeDst
  1828.             field.  A match on an IpAddress is defined to be a
  1829.             search to find the route or routes which would be
  1830.             used to reach the IpAddress.  More than one route
  1831.             may be applicable, in which case all possible routes
  1832.             should be returned.
  1833.  
  1834.         SET-MATCH: Is optionally defined on the object.  A SET
  1835.             on an entire RoutingEntry replaces the entire entry
  1836.             with a new value.  Certain fields (indicated below)
  1837.             can also be changed using a SET-MATCH.
  1838.  
  1839.             The match operator is defined on the routeDst and
  1840.             routeTOS fields.  To SET a value, the match must be
  1841.             exact on the IP address (this is different from the
  1842.  
  1843.  
  1844.  
  1845. Partridge & Trewitt                                            [Page 33]
  1846.  
  1847. RFC 1024                    HEMS Definitions                October 1987
  1848.  
  1849.  
  1850.             search definition for GET-MATCH).
  1851.  
  1852.             Note that support of the operator on an entity
  1853.             which uses a dynamic routing protocol such as
  1854.             GGP or EGP will require close coordination with
  1855.             the routing protocol to ensure consistent data.
  1856.             (Arguably, this facility should not be supported
  1857.             on such machines).
  1858.  
  1859.     The definitions of the fields in the RoutingEntry are given below.
  1860.  
  1861.  
  1862.     OBJECT:  routeMetric
  1863.  
  1864.     Type:  INTEGER
  1865.  
  1866.     Definition: The routing metric on this route.  Note that the type of
  1867.         metric is defined in the metricUsed field of the IpRoutingTable
  1868.         dictionary.
  1869.  
  1870.     OBJECT: routeDst
  1871.  
  1872.     Type: IpAddress
  1873.  
  1874.     Definition:  The final destination that can be reached via this
  1875.         route.
  1876.  
  1877.  
  1878.     OBJECT:  nextHop
  1879.  
  1880.     Type:  IpAddress
  1881.  
  1882.     Definition:  The next hop to the final destination.
  1883.  
  1884.  
  1885.     OBJECT:  routeAuthor
  1886.  
  1887.     Type:  IpAddress
  1888.  
  1889.     Definition:  The IP address of the entity from which this route was
  1890.         *first* received.  That is, the first entity which stated that
  1891.         was reached via nextHop.  The default IpAddress should be used
  1892.         to indicate routes which originated on the entity.
  1893.  
  1894.     Object Status:  Encouraged.
  1895.  
  1896.  
  1897.     OBJECT:  routeProto
  1898.  
  1899.  
  1900.  
  1901. Partridge & Trewitt                                            [Page 34]
  1902.  
  1903. RFC 1024                    HEMS Definitions                October 1987
  1904.  
  1905.  
  1906.     Type:  Octet
  1907.  
  1908.     Definition:  The routing protocol from which this route was learned.
  1909.         The value is taken from the list of values for routingProtocols
  1910.         above.
  1911.  
  1912.     Object Status:  Encouraged.
  1913.  
  1914.  
  1915.     OBJECT: routeTime
  1916.  
  1917.     Type:  TimeStamp
  1918.  
  1919.     Definition:  When this route was first received.
  1920.  
  1921.     Object Status:  Encouraged.
  1922.  
  1923.  
  1924.     OBJECT:  routeTOS
  1925.  
  1926.     Type:  INTEGER
  1927.  
  1928.     Definition:  The IP Type of Service which this routing entry serves.
  1929.  
  1930.     Object Status:  Required if type of service routing is supported.
  1931.  
  1932.  
  1933.     OBJECT:  valid
  1934.  
  1935.     Type:  BOOLEAN
  1936.  
  1937.     Definition:  Whether the route is active.  (Some machines retain
  1938.         routes which are no longer valid for various reasons.)
  1939.  
  1940. The IpTransportLayer Dictionary
  1941.  
  1942.     The IpTransportLayer Dictionary contains any information which
  1943.     pertains to transport protocols which use the IP protocol as the
  1944.     network protocol.  For ease of reference, the ASN.1 tag of each
  1945.     transport protocol's dictionary is the same as the assigned IP
  1946.     Protocol number.  The definition of the IpTransportLayer
  1947.     dictionary is shown below.  Note that dictionaries for many
  1948.     protocols are not yet defined.
  1949.  
  1950.     IpTransportLayer ::= [APPLICATION 38] IMPLICIT SET {
  1951.                 [0] IMPLICIT ProtocolsSupported,
  1952.                 [1] IMPLICIT IcmpValues,
  1953.                 [2] IMPLICIT IgmpValues OPTIONAL,
  1954.  
  1955.  
  1956.  
  1957. Partridge & Trewitt                                            [Page 35]
  1958.  
  1959. RFC 1024                    HEMS Definitions                October 1987
  1960.  
  1961.  
  1962.                 [3] IMPLICIT GgpValues OPTIONAL,
  1963.                 [7] IMPLICIT TcpValues OPTIONAL,
  1964.                 [8] IMPLICIT EgpValues OPTIONAL,
  1965.                 [17] IMPLICIT UdpValues OPTIONAL,
  1966.                 [20] IMPLICIT HmpValues OPTIONAL,
  1967.                 [27] IMPLICIT RdpValues OPTIONAL,
  1968.                 [30] IMPLICIT NetbltValues OPTIONAL,
  1969.     }
  1970.  
  1971.     OBJECT:  IpTransportLayer
  1972.  
  1973.     Type:  SET
  1974.  
  1975.     Definition:  see above.
  1976.  
  1977.     The objects in the dictionary are defined below.
  1978.  
  1979. The IpTransportLayer Dictionary:  ProtocolsSupported
  1980.  
  1981.     OBJECT:  protocolsSupported
  1982.  
  1983.     Type:  OCTETSTRING
  1984.  
  1985.     Definition: Sparse list of transport protocols supported.  Each
  1986.         octet in the OCTETSTRING contains the IP protocol number of a
  1987.         supported protocol.  For the purposes of this definition, an
  1988.         entity supports a protocol if it both contains software to
  1989.         makes it possible for the protocol to be used in
  1990.         communications with the entity, AND the entity keeps the
  1991.         required values (if any) defined in this memo for that protocol.
  1992.  
  1993.  
  1994. The IpTransportLayer Dictionary: IcmpValues
  1995.  
  1996.     The IcmpValues dictionary is a subdictionary of the IpTransportLayer
  1997.     dictionary which tracks the workings of the Internet Control Message
  1998.     Protocol, defined in RFC-792.  The form of the dictionary is shown
  1999.     below.
  2000.             IcmpValues ::= SET {
  2001.                 inputPktCount   [0] IMPLICIT Counter,
  2002.                 inputPktErrors  [1] IMPLICIT Counter,
  2003.                 inputPktDeliver [2] IMPLICIT Counter,
  2004.                 inputPktTypes   [3] IMPLICIT Histogram OPTIONAL,
  2005.                 outputPktCount  [4] IMPLICIT Counter,
  2006.                 outputPktErrors [5] IMPLICIT Counter,
  2007.                 outputPktTypes  [6] IMPLICIT Histogram OPTIONAL,
  2008.                 icmpTraffic     [7] IMPLICIT TrafficMatrix OPTIONAL,
  2009.                 ipID            [8] IMPLICIT Counter OPTIONAL
  2010.  
  2011.  
  2012.  
  2013. Partridge & Trewitt                                            [Page 36]
  2014.  
  2015. RFC 1024                    HEMS Definitions                October 1987
  2016.  
  2017.  
  2018.             }
  2019.  
  2020.     OBJECT:  IcmpValues
  2021.  
  2022.     Type:  SET
  2023.  
  2024.     Definition:  see above.
  2025.  
  2026.     The objects in the dictionary are defined below.
  2027.  
  2028.  
  2029.     OBJECT:  inputPktCount
  2030.  
  2031.     Type:  Counter
  2032.  
  2033.     Definition:  The total number of ICMP packets received (including
  2034.         those in error).
  2035.  
  2036.  
  2037.  
  2038.     OBJECT:  inputPktErrors
  2039.  
  2040.     Type:  Counter
  2041.  
  2042.     Definition:  The number of ICMP packets received which proved to
  2043.         have errors (bad checksums, bad length etc).  Subtracting this
  2044.         value from the inputPktCount field should give the number of
  2045.         valid ICMP packets received.
  2046.  
  2047.  
  2048.     OBJECT:  inputPktDeliver
  2049.  
  2050.     Type:  Counter
  2051.  
  2052.     Definition:  The number of valid ICMP packets which were
  2053.         successfully processed (e.g., delivered to the higher
  2054.         protocol).
  2055.  
  2056.  
  2057.     OBJECT:  inputPktTypes
  2058.  
  2059.     Type:  Histogram
  2060.  
  2061.     Definition:  A histogram of ICMP messages types and codes received,
  2062.         not including those messages that proved to contain errors.
  2063.         The histogram histValue field contains a 16-bit value which is
  2064.         the the (ICMP type * 256) + ICMP code, and the histCount field
  2065.         contains the number of valid messages containing this
  2066.  
  2067.  
  2068.  
  2069. Partridge & Trewitt                                            [Page 37]
  2070.  
  2071. RFC 1024                    HEMS Definitions                October 1987
  2072.  
  2073.  
  2074.         type/code pair which have been received.
  2075.  
  2076.         The message type and code values are those defined in RFC-792
  2077.         (e.g., the Time Exceeded Message with a code of "fragment
  2078.         reassembly time exceeded" is (11 * 256) + 1 = 2817).
  2079.  
  2080.     Object Status:  Useful.
  2081.  
  2082.     Operations on Object:  The defaults except as listed below:
  2083.  
  2084.         GET-MATCH:  Match is defined on the value of the histValue
  2085.             field.
  2086.  
  2087.     OBJECT:  outputPktCount
  2088.  
  2089.     Type:  Counter
  2090.  
  2091.     Definition:  The total number of ICMP packets that the entity
  2092.         attempted to send (including those that failed due to lack of
  2093.         buffers, a missing route or other transient transmission
  2094.         problems).
  2095.  
  2096.  
  2097.     OBJECT:  outputPktErrors
  2098.  
  2099.     Type:  Counter
  2100.  
  2101.     Definition:  The number of ICMP packets which the entity could not
  2102.         send due to transmission problems such as the lack of buffers, a
  2103.         missing route or other transient transmission problems.  This
  2104.         value is not required to include errors which the ICMP layer
  2105.         could not reasonably be expected to detect such as damage to the
  2106.         packet in transit.  Subtracting this value from the PktCount
  2107.         field should give the number of ICMP packets the entity believes
  2108.         it successfully sent.
  2109.  
  2110.  
  2111.  
  2112.     OBJECT:  outputPktTypes
  2113.  
  2114.     Type:  Histogram
  2115.  
  2116.     Definition:  A histogram of ICMP messages types and codes sent,
  2117.         including those messages that later failed to be transmitted.
  2118.         The histogram histValue field contains a 16-bit value which is
  2119.         the the (ICMP type * 256) + ICMP code, and the histCount field
  2120.         contains the number of valid messages containing this type/code
  2121.         pair which have been sent.
  2122.  
  2123.  
  2124.  
  2125. Partridge & Trewitt                                            [Page 38]
  2126.  
  2127. RFC 1024                    HEMS Definitions                October 1987
  2128.  
  2129.  
  2130.         The message type and code values are those defined in RFC-792
  2131.         (e.g., the Time Exceeded Message with a code of "fragment
  2132.         reassembly time exceeded" is (11 * 256) + 1 = 2817).
  2133.  
  2134.  
  2135.     Object Status:  Useful.
  2136.  
  2137.     Operations on Object:  The defaults except as listed below:
  2138.  
  2139.             GET-MATCH:  Match is defined on the value of the histValue
  2140.                 field.
  2141.  
  2142.     OBJECT:  icmpTraffic
  2143.  
  2144.     Type:  TrafficMatrix
  2145.  
  2146.     Definition:  All ICMP traffic which has originated on this machine.
  2147.         The source address in the traffic matrix should be the interface
  2148.         from which the packet was sent.  The destination is the address
  2149.         to which the packet is to finally be delivered (not an
  2150.         intermediate hop).
  2151.  
  2152.     Object Status:  Useful.
  2153.  
  2154.  
  2155.     OBJECT:  ipID
  2156.  
  2157.     Type:  Counter
  2158.  
  2159.     Definition:  The next IP packet ID identifier to be used by the ICMP
  2160.         code.
  2161.  
  2162.     Object Status:  Required if the ICMP code generates its own IP
  2163.         identifiers.
  2164.  
  2165.  
  2166.  
  2167. The IpTransportLayer Dictionary: IgmpValues
  2168.  
  2169.     IgmpValues ::= SET {
  2170.         conformance     [0] IMPLICIT INTEGER,
  2171.         inputPktCount   [1] IMPLICIT Counter,
  2172.         inputPktErrors  [2] IMPLICIT Counter,
  2173.         inputPktTypes   [3] IMPLICIT Histogram OPTIONAL,
  2174.         outputPktCount  [4] IMPLICIT Counter,
  2175.         outputPktErrors [5] IMPLICIT Counter,
  2176.         outputPktTypes  [6] IMPLICIT Histogram OPTIONAL,
  2177.         igmpTraffic     [7] IMPLICIT TrafficMatrix OPTIONAL
  2178.  
  2179.  
  2180.  
  2181. Partridge & Trewitt                                            [Page 39]
  2182.  
  2183. RFC 1024                    HEMS Definitions                October 1987
  2184.  
  2185.  
  2186.         igmpGroups      [8] IMPLICIT SET of IgmpGroupEntry,
  2187.         ipID            [9] IMPLICIT Counter OPTIONAL,
  2188.        }
  2189.  
  2190.     OBJECT:  IgmpValues
  2191.  
  2192.     Type:  SET
  2193.  
  2194.     Definition:  The dictionary of information on the Internet Group
  2195.         Management Protocol (RFC-988).
  2196.  
  2197.     Object Status:  Required in hosts which support IGMP.
  2198.  
  2199.     The objects stored in this dictionary are defined below.
  2200.  
  2201.  
  2202.     OBJECT:  conformance
  2203.  
  2204.     Type:  INTEGER
  2205.  
  2206.     Definition:  The level of conformance with RFC-988.  The conformance
  2207.         levels are:
  2208.  
  2209.                0 -- Level 0.  No support for IP multicasting
  2210.  
  2211.                1 -- Level 1.  Support for sending but not receiving
  2212.                     multicast datagrams.
  2213.  
  2214.                2 -- Level 2.  Full support for IP multicasting.
  2215.  
  2216.         These values are taken directly from RFC-988.
  2217.  
  2218.  
  2219.     OBJECT:  inputPktCount
  2220.  
  2221.     Type:  Counter
  2222.  
  2223.     Definition:  The number of IGMP packets received including those
  2224.         that proved to be in error.
  2225.  
  2226.     OBJECT:  inputPktErrors
  2227.  
  2228.     Type:  Counter
  2229.  
  2230.     Definition:  The number of IGMP packets received which proved to
  2231.         be in error.  This value subtracted from inputPktCount should
  2232.         give the number of valid IGMP packets received.
  2233.  
  2234.  
  2235.  
  2236.  
  2237. Partridge & Trewitt                                            [Page 40]
  2238.  
  2239. RFC 1024                    HEMS Definitions                October 1987
  2240.  
  2241.  
  2242.     OBJECT:  inputPktTypes
  2243.  
  2244.     Type:  Histogram
  2245.  
  2246.     Definition:  A histogram of IGMP messages types and codes sent,
  2247.         including those messages that later failed to be transmitted.
  2248.         The histogram histValue field contains a 16-bit value which
  2249.         is the the (IGMP type * 256) + IGMP code, and the histCount
  2250.         field contains the number of valid messages containing this
  2251.         type/code pair which have been sent.
  2252.  
  2253.         The type and code values are taken from RFC-988.
  2254.  
  2255.  
  2256.     OBJECT:  outputPktCount
  2257.  
  2258.     Type:  Counter
  2259.  
  2260.     Definition:  The total number of IGMP packets that the entity
  2261.         attempted to send (including those that failed due to lack
  2262.         of buffers, a missing route or other transient transmission
  2263.         problems).
  2264.  
  2265.     OBJECT:  outputPktErrors
  2266.  
  2267.     Type:  Counter
  2268.  
  2269.     Definition:  The number of IGMP packets which the entity could not
  2270.         send due to transmission problems such as the lack of buffers,
  2271.         a missing route or other transient transmission problems.
  2272.         This value is not required to include errors which the IGMP
  2273.         layer could not reasonably be expected to detect such as damage
  2274.         to the packet in transit.  Subtracting this value from the
  2275.         outputPktCount field should give the number of IGMP packets
  2276.         the entity believes it successfully sent.
  2277.  
  2278.     OBJECT:  outputPktTypes
  2279.  
  2280.     Type:  Histogram
  2281.  
  2282.     Definition:  A histogram of IGMP messages types and codes sent,
  2283.         including those messages that later failed to be transmitted.
  2284.         The histogram histValue field contains a 16-bit value which is
  2285.         the the (IGMP type * 256) + IGMP code, and the histCount field
  2286.         contains the number of valid messages containing this type/code
  2287.         pair which have been sent.
  2288.  
  2289.         The type and code values are taken from RFC-988.
  2290.  
  2291.  
  2292.  
  2293. Partridge & Trewitt                                            [Page 41]
  2294.  
  2295. RFC 1024                    HEMS Definitions                October 1987
  2296.  
  2297.  
  2298.     OBJECT: igmpTraffic
  2299.  
  2300.     Type: TrafficMatrix
  2301.  
  2302.     Definition:  All IGMP traffic which has originated on this machine.
  2303.         The source address in the traffic matrix should be the interface
  2304.         from which the packet was sent.  The destination is the address
  2305.         to which the packet is to finally be delivered (not an
  2306.         intermediate hop).
  2307.  
  2308.     Object Status: Useful.
  2309.  
  2310.  
  2311.  
  2312.     OBJECT: igmpGroups
  2313.  
  2314.     Type: SET
  2315.  
  2316.     Definition:  The various igmpGroups of which this host is aware.
  2317.         This is stored as a set of IgmpGroupEntry.  The format of an
  2318.         IgmpGroupEntry is shown below.
  2319.  
  2320.                     IgmpGroupEntry ::= [0] SET {
  2321.                         groupAddress      [0] IMPLICIT IpAddress,
  2322.                         groupAccessKey    [1] IMPLICIT OCTETSTRING,
  2323.                         groupAgent        [2] IMPLICIT BOOLEAN,
  2324.                     }
  2325.  
  2326.         The groupAddress is the multicast IP address.  The
  2327.         groupAccessKey is the 8 octet key -- this key may be
  2328.         confidential and should only be available to authorized querying
  2329.         entities.  The groupAgent field is true if this entity is an
  2330.         agent for the multicast group.
  2331.  
  2332.     OBJECT:  ipID
  2333.  
  2334.     Type:  Counter
  2335.  
  2336.     Definition:  The next IP packet ID identifier to be used by the IGMP
  2337.         code.
  2338.  
  2339.     Object Status:  Required if the IGMP code generates its own IP
  2340.         identifiers.
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349. Partridge & Trewitt                                            [Page 42]
  2350.  
  2351. RFC 1024                    HEMS Definitions                October 1987
  2352.  
  2353.  
  2354. The IpTransportLayer Dictionary:  GgpValues
  2355.  
  2356.     The definition of the GgpValues dictionary is left for further
  2357.     study.
  2358.  
  2359. The IpTransportLayer Dictionary:  TcpValues
  2360.  
  2361.     The TcpValues dictionary is a subdictionary of the IpTransportLayer
  2362.     dictionary which tracks the workings of the Transmission Control
  2363.     Protocol, defined in RFC-793.  The definitions of several objects in
  2364.     this dictionary refer to definitions in RFC-793.  The form of the
  2365.     dictionary is shown below.
  2366.  
  2367.  
  2368.             TcpValues ::= SET {
  2369.                           [0] IMPLICIT TcpParam
  2370.                           [1] IMPLICIT TcpStats OPTIONAL,
  2371.               tcpConnData [2] IMPLICIT SET of TcpConn,
  2372.             }
  2373.  
  2374.     OBJECT:  TcpValues
  2375.  
  2376.     Type:  IMPLICIT SET
  2377.  
  2378.     Definition:  see above.
  2379.  
  2380.     Object Status:  Required if the entity supports TCP.
  2381.  
  2382.     The objects in the dictionary are defined in the next few sections.
  2383.  
  2384.  
  2385. The IpTransportLayer Dictionary: TcpValues/TcpParam
  2386.  
  2387.     The TcpParam dictionary contains information about certain
  2388.     parameters such as round-trip timer estimation constants which are
  2389.     managed on a per-machine basis.  The form of the dictionary is shown
  2390.     below.
  2391.  
  2392.             TcpParam ::= SET {
  2393.                 tcpRtoA       [0] IMPLICIT IA5String,
  2394.                 tcpRtoParam   [1] IMPLICIT SET of RtoParam,
  2395.                 ipID          [2] IMPLICIT Counter,
  2396.                 tcpRtoMin     [3] IMPLICIT INTEGER OPTIONAL,
  2397.                 tcpRtoMax     [4] IMPLICIT INTEGER OPTIONAL,
  2398.                 tcpMaxSegSiz  [5] IMPLICIT INTEGER,
  2399.                 tcpMaxConn    [6] IMPLICIT INTEGER OPTIONAL,
  2400.                 tcpMaxWindow  [7] IMPLICIT INTEGER OPTIONAL,
  2401.             }
  2402.  
  2403.  
  2404.  
  2405. Partridge & Trewitt                                            [Page 43]
  2406.  
  2407. RFC 1024                    HEMS Definitions                October 1987
  2408.  
  2409.  
  2410.     OBJECT:  tcpParam
  2411.  
  2412.     Type:  SET
  2413.  
  2414.     Definition:  see above.
  2415.  
  2416.  
  2417.     The definition of the objects in the tcpParam dictionary are given
  2418.     below.
  2419.  
  2420.     OBJECT:  tcpRtoA
  2421.  
  2422.     Type:  IA5String
  2423.  
  2424.     Definition:  The TCP retransmission timeout algorithm used.  The
  2425.         algorithm is expressed as one or more equations to generate
  2426.         a target value, "RTO[N]", which is the retransmission timeout
  2427.         for packet "N".  Expressions should use well understood
  2428.         symbols such as * for multiplication and / for division, and
  2429.         parentheses to indicate precedence.  Variables should begin
  2430.         with an upper case character.  Multiple equations should be
  2431.         separated by semi-colons.  Comments should be in braces (i.e.,
  2432.         {}).  Constants should begin with a lower case character.  In
  2433.         addition to "RTO[N]" the symbol "S[N]" is defined to mean the
  2434.         round-trip sample for packet N.  Using this syntax, the
  2435.         algorithm in RFC-793 would be expressed as:
  2436.  
  2437.                 RTO[N] = SRTT[N] * beta ;
  2438.                 SRTT[N] = ( S[N-1] * alpha) + (SRTT[N-1] * (1 - alpha))
  2439.  
  2440.     Note:  The syntax probably needs to be refined so that it can be
  2441.        parsed and interpreted by a program.  This is left for future
  2442.        study.
  2443.  
  2444.  
  2445.     OBJECT:  tcpRtoParam
  2446.  
  2447.     Type:  SET of RtoParam
  2448.  
  2449.     Definition:  The list of the values of the constants used by the
  2450.         retransmission timeout algorithm.  The format of the RtoParam
  2451.         structure is shown below.
  2452.  
  2453.         RtoParam ::= SEQUENCE {
  2454.             name IA5String,
  2455.             value Fraction
  2456.         }
  2457.  
  2458.  
  2459.  
  2460.  
  2461. Partridge & Trewitt                                            [Page 44]
  2462.  
  2463. RFC 1024                    HEMS Definitions                October 1987
  2464.  
  2465.  
  2466.         The name is the name of the constant as expressed in the
  2467.         tcpRtoA (e.g., "beta").
  2468.  
  2469.     OBJECT:  ipID
  2470.  
  2471.     Type:  Counter
  2472.  
  2473.     Definition:  The next IP packet ID identifier to be used by the TCP
  2474.         code.
  2475.  
  2476.     Object Status:  Required if the TCP code generates its own IP
  2477.         identifiers.
  2478.  
  2479.     OBJECT:  tcpRtoMin
  2480.  
  2481.     Type:  INTEGER
  2482.  
  2483.     Definition:  The minimum value the TCP implementation permits for
  2484.         the retransmission timeout (RTO), measured in milliseconds.
  2485.  
  2486.     Note:  If the SET operation is optionally defined, access control
  2487.        must be exercised.
  2488.  
  2489.     Object Status:  Required if the implementation uses the suggested
  2490.         algorithm in RFC-793 or if the implementation sets any limits
  2491.         on the minimum RTO.
  2492.  
  2493.     Operations on Object:  The defaults except as listed below:
  2494.  
  2495.         SET:  Optionally defined to change the value.  Implementations
  2496.            should confirm that the new value is less than tcpRtoMax.
  2497.  
  2498.  
  2499.     OBJECT:  tcpRtoMax
  2500.  
  2501.     Type:  INTEGER
  2502.  
  2503.     Definition:  The maximum value the TCP implementation permits for
  2504.         the retransmission timeout (RTO), measured in milliseconds.
  2505.  
  2506.     Note:  If the SET operation is optionally defined, access control
  2507.        must be exercised.
  2508.  
  2509.     Object Status:  Required if the implementation uses the suggested
  2510.         algorithm in RFC-793 or if the implementation sets any limits
  2511.         on the maximum RTO.
  2512.  
  2513.     Operations on Object:  The defaults except as listed below:
  2514.  
  2515.  
  2516.  
  2517. Partridge & Trewitt                                            [Page 45]
  2518.  
  2519. RFC 1024                    HEMS Definitions                October 1987
  2520.  
  2521.  
  2522.     SET:  Optionally defined to change the value.  Implementations
  2523.          should confirm that the new value is greater than tcpRtoMax,
  2524.          and that the value is large (i.e., several seconds).
  2525.  
  2526.  
  2527.     OBJECT:  tcpMaxSegSiz
  2528.  
  2529.     Type:  INTEGER
  2530.  
  2531.     Definition:  The maximum segment size used by this implementation.
  2532.  
  2533.     Object Status:  Required if the entity sets an upper limit on the
  2534.         MTU.  (Some implementations have no constraints, but chose an
  2535.         MTU from external constraints such as the maximum MTU of the
  2536.         network interface in use.)
  2537.  
  2538.  
  2539.     OBJECT:  tcpMaxConn
  2540.  
  2541.     Type:  INTEGER
  2542.  
  2543.     Definition:  An optional value, which must be present if the entity
  2544.         has a limit on the total number of TCP connections it can support.
  2545.  
  2546.     Object Status:  Required if the entity sets limits.
  2547.  
  2548.     Note:  If the SET operation is defined, access control must be
  2549.         exercised.
  2550.  
  2551.     Operations on Object:  The defaults except as listed below:
  2552.  
  2553.         SET:  Optionally defined to change the value.  If the
  2554.             new value is less than the number of currently
  2555.             open connections, implementations are *not* required
  2556.             to close existing connections, but may not open
  2557.             any additional ones.
  2558.  
  2559.  
  2560.     OBJECT:  tcpMaxWindow
  2561.  
  2562.     Type:  INTEGER
  2563.  
  2564.     Definition:  An optional value, which must be present if the entity
  2565.         places a fixed upper limit on the size of any connection's TCP
  2566.         window (i.e., if the maximum window size is not per connection
  2567.         configurable).
  2568.  
  2569.     Object Status:  Required if the entity sets limits.
  2570.  
  2571.  
  2572.  
  2573. Partridge & Trewitt                                            [Page 46]
  2574.  
  2575. RFC 1024                    HEMS Definitions                October 1987
  2576.  
  2577.  
  2578.     Note:  If the SET operation is defined, access control must be
  2579.         exercised.
  2580.  
  2581.     Operations on Object:  The defaults except as listed below:
  2582.  
  2583.             SET:  Optionally defined to change the value.  The new
  2584.                 value must be at least the size of one maximum
  2585.                 TCP segment.
  2586.  
  2587. The IpTransportLayer Dictionary: TcpValues/TcpStats
  2588.  
  2589.     The TcpStats dictionary stores general information about the
  2590.     workings of the TCP layer.  The form of the dictionary is shown
  2591.     below.
  2592.  
  2593.             TcpStats ::= SET {
  2594.                  connAttempts     [0] IMPLICIT Counter OPTIONAL,
  2595.                  connOpened       [1] IMPLICIT Counter OPTIONAL,
  2596.                  connAccepted     [2] IMPLICIT Counter OPTIONAL,
  2597.                  connClosed       [3] IMPLICIT Counter OPTIONAL,
  2598.                  connAborted      [4] IMPLICIT Counter OPTIONAL,
  2599.                  connAbortedInfo  [5] IMPLICIT Histogram OPTIONAL,
  2600.                  octetsIn         [6] IMPLICIT Counter OPTIONAL,
  2601.                  octetsOut        [7] IMPLICIT Counter OPTIONAL,
  2602.                  octetsInDup      [8] IMPLICIT Counter OPTIONAL,
  2603.                  octetsRetrans    [9] IMPLICIT Counter OPTIONAL,
  2604.                  inputPkts       [10] IMPLICIT Counter OPTIONAL,
  2605.                  retransPkts     [11] IMPLICIT Counter OPTIONAL,
  2606.                  outputPkts      [12] IMPLICIT Counter OPTIONAL,
  2607.                  dupPkts         [13] IMPLICIT Counter OPTIONAL,
  2608.  
  2609.             }
  2610.  
  2611.     OBJECT:  TcpStats
  2612.  
  2613.     Type:  SET
  2614.  
  2615.     Definition:  See above.
  2616.  
  2617.     Object Status:  Encouraged.
  2618.  
  2619.     The definition of the fields in the dictionary are given below.
  2620.  
  2621.  
  2622.     OBJECT:  connAttempts
  2623.  
  2624.     Type:  Counter
  2625.  
  2626.  
  2627.  
  2628.  
  2629. Partridge & Trewitt                                            [Page 47]
  2630.  
  2631. RFC 1024                    HEMS Definitions                October 1987
  2632.  
  2633.  
  2634.     Definition:  The number of connection attempts that have been made
  2635.         from this host.  This includes pending attempts.
  2636.  
  2637.     Object Status:  Encouraged.
  2638.  
  2639.  
  2640.     OBJECT:  connOpened
  2641.  
  2642.     Type:  Counter
  2643.  
  2644.     Definition:  The number of connection attempts from this host which
  2645.         successfully generated an open connection.  This includes
  2646.         currently open connections.
  2647.  
  2648.     Object Status:  Encouraged.
  2649.  
  2650.  
  2651.     OBJECT:  connAccepted
  2652.  
  2653.     Type:  Counter
  2654.  
  2655.     Definition:  The number of connections accepted by listening peers
  2656.         on this entity.  This includes currently open connections.
  2657.  
  2658.     Object Status:  Encouraged.
  2659.  
  2660.  
  2661.     OBJECT:  connClosed
  2662.  
  2663.     Type:  Counter
  2664.  
  2665.     Definition:  The number of connections which were properly closed.
  2666.  
  2667.     Object Status:  Encouraged.
  2668.  
  2669.  
  2670.     OBJECT:  connAborted
  2671.  
  2672.     Type:  Counter
  2673.  
  2674.     Definition:  The number of connections which were aborted.  Note
  2675.         that if implementations trace how the connection was aborted,
  2676.         they are encouraged to use the connAbortedInfo histogram.
  2677.  
  2678.     Object Status:  Encouraged.
  2679.  
  2680.  
  2681.     OBJECT:  connAbortedInfo
  2682.  
  2683.  
  2684.  
  2685. Partridge & Trewitt                                            [Page 48]
  2686.  
  2687. RFC 1024                    HEMS Definitions                October 1987
  2688.  
  2689.  
  2690.     Type:  Histogram
  2691.  
  2692.     Definition:  The number of connections which were aborted by type of
  2693.         abort.  The histValue is one of the codes listed below.  The
  2694.         histCount is the number of connections aborted for this reason.
  2695.         The histValues codes are:
  2696.  
  2697.                     0 -- an abort condition not specified below
  2698.                     1 -- remote abort
  2699.                     2 -- local application abort
  2700.                     3 -- local protocol level abort
  2701.  
  2702.     Object Status:  Useful
  2703.  
  2704.  
  2705.     OBJECT:  octetsIn
  2706.  
  2707.     Type:  Counter
  2708.  
  2709.     Definition:  The total number of TCP octets (not including
  2710.         duplicates) received at this entity.
  2711.  
  2712.     Object Status:  Required if TcpStats is implemented.
  2713.  
  2714.  
  2715.     OBJECT:  octetsOut
  2716.  
  2717.     Type:  Counter
  2718.  
  2719.     Definition:  The total number of TCP octets (not including
  2720.         retransmissions) sent from this entity.
  2721.  
  2722.     Object Status:  Required if TcpStats is implemented.
  2723.  
  2724.  
  2725.     OBJECT:  octetsInDup
  2726.  
  2727.     Type:  Counter
  2728.  
  2729.     Definition:  The total number of TCP octets received which were
  2730.         duplicates.
  2731.  
  2732.     Object Status:  Required if TcpStats is implemented.
  2733.  
  2734.  
  2735.     OBJECT:  octetsReTrans
  2736.  
  2737.     Type:  Counter
  2738.  
  2739.  
  2740.  
  2741. Partridge & Trewitt                                            [Page 49]
  2742.  
  2743. RFC 1024                    HEMS Definitions                October 1987
  2744.  
  2745.  
  2746.     Definition:  The total number of TCP octets which have been
  2747.         retransmitted.
  2748.  
  2749.     Object Status:  Required if TcpStats is implemented.
  2750.  
  2751.  
  2752.     OBJECT:  inputPkts
  2753.  
  2754.     Type:  Counter
  2755.  
  2756.     Definition:  The total number of valid packets received, including
  2757.         those on current connections.
  2758.  
  2759.     Object Status:  Useful.
  2760.  
  2761.  
  2762.     OBJECT:  retransPkts
  2763.  
  2764.     Type:  Counter
  2765.  
  2766.     Definition:  The total number of packets retransmitted.
  2767.  
  2768.     Object Status:  Useful.
  2769.  
  2770.  
  2771.     OBJECT:  outputPkts
  2772.  
  2773.     Type:  Counter
  2774.  
  2775.     Definition:  The total number of packets sent.
  2776.  
  2777.     Object Status:  Useful.
  2778.  
  2779.  
  2780.     OBJECT:  dupPkts
  2781.  
  2782.     Type:  Counter
  2783.  
  2784.     Definition:  The number of packets received which contained only
  2785.         data already received.
  2786.  
  2787.     Object Status:  Useful.
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797. Partridge & Trewitt                                            [Page 50]
  2798.  
  2799. RFC 1024                    HEMS Definitions                October 1987
  2800.  
  2801.  
  2802. The IpTransportLayer Dictionary: TcpValues/TcpConn
  2803.  
  2804.     The tcpConnData field in the TcpValues dictionary is a set of
  2805.     TcpConn, where each TcpConn contains information on a particular TCP
  2806.     connection.  The definition of TcpConn is shown below.
  2807.  
  2808.                 TcpConn ::= SET {
  2809.                     localPort       [0] IMPLICIT INTEGER,
  2810.                     localAddress    [1] IMPLICIT IpAddress,
  2811.                     foreignPort     [2] IMPLICIT INTEGER,
  2812.                     foreignAddress  [3] IMPLICIT IpAddress,
  2813.                     state           [4] IMPLICIT INTEGER,
  2814.                     snduna          [5] IMPLICIT INTEGER,
  2815.                     sndnxt          [6] IMPLICIT INTEGER,
  2816.                     sndwnd          [7] IMPLICIT INTEGER,
  2817.                     congwnd         [8] IMPLICIT INTEGER,
  2818.                     rcvnxt          [9] IMPLICIT INTEGER,
  2819.                     rcvwnd         [10] IMPLICIT INTEGER,
  2820.                     srtt           [11] IMPLICIT INTEGER OPTIONAL,
  2821.                     lastrtt        [12] IMPLICIT INTEGER OPTIONAL,
  2822.                     maxSegSize     [13] IMPLICIT INTEGER,
  2823.                     octetsSent     [14] IMPLICIT Counter OPTIONAL,
  2824.                     octetsRXmit    [15] IMPLICIT Counter OPTIONAL,
  2825.                     octetsRcvd     [16] IMPLICIT Counter OPTIONAL,
  2826.                     octetDups      [17] IMPLICIT Counter OPTIONAL,
  2827.                     octetPastWin   [18] IMPLICIT Counter OPTIONAL,
  2828.                     segSizes       [19] IMPLICIT Histogram OPTIONAL,
  2829.             }
  2830.  
  2831.     The set of TCP connections can be searched in a number of ways based
  2832.     on the local and foreign addresses (including the port number).
  2833.     Individual values of a connection cannot be retrieved without a
  2834.     search.
  2835.  
  2836.     OBJECT:  TcpConn
  2837.  
  2838.     Type:  SET
  2839.  
  2840.     Definition:  The per TCP connection data.
  2841.  
  2842.     Operations on Object:  The defaults except as listed below:
  2843.  
  2844.           GET-MATCH:  Defined on any combination of values of
  2845.               localAddress,  localPort, foreignAddress and
  2846.               foreignPort.  Returns all connections which match
  2847.               the template.  (For example, GET-MATCH on a
  2848.               particular foreignAddress returns all connections
  2849.               to that address.)
  2850.  
  2851.  
  2852.  
  2853. Partridge & Trewitt                                            [Page 51]
  2854.  
  2855. RFC 1024                    HEMS Definitions                October 1987
  2856.  
  2857.  
  2858.     The definitions of the fields of the tcpConn structure are given
  2859.     below.
  2860.  
  2861.     OBJECT:  localPort
  2862.  
  2863.     Type:  INTEGER
  2864.  
  2865.     Definition:  The local port number of this connection.
  2866.  
  2867.     Operations on Object: Defaults.  Note that MATCH operators may be
  2868.         applied to this object to locate information on a particular TCP
  2869.         connection.
  2870.  
  2871.  
  2872.     OBJECT:  localAddress
  2873.  
  2874.     Type:  IpAddress
  2875.  
  2876.     Definition:  The local IP address of this connection.  May be the
  2877.         default IP address defined above.  This value may not be valid
  2878.         in certain states.
  2879.  
  2880.     Operations on Object:  Defaults.  Note that MATCH operators may be
  2881.         applied to this object to locate information on a particular
  2882.         TCP connection.
  2883.  
  2884.     OBJECT:  foreignPort
  2885.  
  2886.     Type:  INTEGER
  2887.  
  2888.     Definition:  The foreign port number of this connection.  This value
  2889.         may be meaningless if the local peer is in certain states (e.g.,
  2890.         LISTEN).
  2891.  
  2892.     Operations on Object:  Defaults.  Note that MATCH operators may be
  2893.        applied to this object to locate information on a particular TCP
  2894.        connection.
  2895.  
  2896.  
  2897.     OBJECT:  foreignAddress
  2898.  
  2899.     Type:  IpAddress
  2900.  
  2901.     Definition:  The foreign IP address of this connection.  This value
  2902.         may be meaningless if the local peer is in certain states (e.g.,
  2903.         LISTEN).
  2904.  
  2905.     Operations on Object: Defaults.  Note that MATCH operators may be
  2906.  
  2907.  
  2908.  
  2909. Partridge & Trewitt                                            [Page 52]
  2910.  
  2911. RFC 1024                    HEMS Definitions                October 1987
  2912.  
  2913.  
  2914.         applied to this object to locate information on a particular
  2915.         TCP connection.
  2916.  
  2917.     OBJECT:  state
  2918.  
  2919.     Type:  INTEGER
  2920.  
  2921.     Definition:  The current state of the local peer.  The values
  2922.         corresponding to the different states are: close(0), listen(1),
  2923.         syn-sent(2), syn-received(3), established(4), close-wait(5),
  2924.         fin-wait-1(6), closing(7), last-ack(8), fin-wait-2(9),
  2925.         time-wait(10).  Implementations must map internal
  2926.         representations of the state into these values.
  2927.  
  2928.  
  2929.     OBJECT:  snduna
  2930.  
  2931.     Type:  INTEGER
  2932.  
  2933.     Definition:  The SND.UNA value as defined in RFC-793.
  2934.  
  2935.  
  2936.     OBJECT:  sndnxt
  2937.  
  2938.     Type:  INTEGER
  2939.  
  2940.     Definition:  The SND.NXT value as defined in RFC-793.
  2941.  
  2942.  
  2943.     OBJECT:  sndwnd
  2944.  
  2945.     Type:  INTEGER
  2946.  
  2947.     Definition:  The SND.WND value as defined in RFC-793.
  2948.  
  2949.  
  2950.     OBJECT:  congwnd
  2951.  
  2952.     Type:  INTEGER
  2953.  
  2954.     Definition:  The congestion window.  This value is less than or
  2955.         equal to sndwnd.  If less than sndwnd, then congestion
  2956.         control is in effect and congwnd is the reduced send window
  2957.         size in use.
  2958.  
  2959.     OBJECT:  rcvnxt
  2960.  
  2961.     Type:  INTEGER
  2962.  
  2963.  
  2964.  
  2965. Partridge & Trewitt                                            [Page 53]
  2966.  
  2967. RFC 1024                    HEMS Definitions                October 1987
  2968.  
  2969.  
  2970.     Definition:  The RCV.NXT value as defined in RFC-793.
  2971.  
  2972.  
  2973.     OBJECT:  rcvwnd
  2974.  
  2975.     Type:  INTEGER
  2976.  
  2977.     Definition:  The RCV.WND value as defined in RFC-793.
  2978.  
  2979.  
  2980.     OBJECT:  srtt
  2981.  
  2982.     Type:  INTEGER
  2983.  
  2984.     Definition:  The smoothed round-trip time in milliseconds.
  2985.  
  2986.     Object Status:  Required if the implementation maintains a smoothed
  2987.         round-trip time.
  2988.  
  2989.  
  2990.     OBJECT:  lastrtt
  2991.  
  2992.     Type:  INTEGER
  2993.  
  2994.     Definition:  The last round-trip time sample taken in milliseconds.
  2995.  
  2996.     Object Status:  Encouraged.
  2997.  
  2998.  
  2999.     OBJECT:  maxSegSize
  3000.  
  3001.     Type:  INTEGER
  3002.  
  3003.     Definition:  The maximum segment size that can be used on this
  3004.         connection.
  3005.  
  3006.  
  3007.     OBJECT:  octetsSent
  3008.  
  3009.     Type:  Counter
  3010.  
  3011.     Definition:  The total number of octets transmitted since the
  3012.         connection was opened, not including retransmissions.  Can
  3013.         alternatively be thought of as the current length of the
  3014.         stream.
  3015.  
  3016.     Object Status:  Encouraged.
  3017.  
  3018.  
  3019.  
  3020.  
  3021. Partridge & Trewitt                                            [Page 54]
  3022.  
  3023. RFC 1024                    HEMS Definitions                October 1987
  3024.  
  3025.  
  3026.     OBJECT:  octetsRXmit
  3027.  
  3028.     Type:  Counter
  3029.  
  3030.     Definition:  The total number of octets retransmitted since the
  3031.         connection was opened.  This plus octetsSent should give the
  3032.         total number of octets sent.
  3033.  
  3034.     Object Status:  Encouraged.
  3035.  
  3036.  
  3037.     OBJECT:  octetsRcvd
  3038.  
  3039.     Type:  Counter
  3040.  
  3041.     Definition:  The number of octets received since the connection was
  3042.         opened, not including duplicates received.  The receiver's
  3043.         version of octetsSent.
  3044.  
  3045.     Object Status:  Encouraged.
  3046.  
  3047.  
  3048.     OBJECT:  octetDups
  3049.  
  3050.     Type:  Counter
  3051.  
  3052.     Definition:  The total number of octets received since the
  3053.         connection was opened which were redundant (i.e., they had been
  3054.         previously received).
  3055.  
  3056.     Object Status:  Encouraged.
  3057.  
  3058.  
  3059.     OBJECT:  octetPastWin
  3060.  
  3061.     Type:  Counter
  3062.  
  3063.     Definition:  The number of segments which contained data beyond
  3064.         the upper edge of the receive window.
  3065.  
  3066.     Object Status:  Encouraged
  3067.  
  3068.  
  3069.     OBJECT:  segSizes
  3070.  
  3071.     Type:  Histogram
  3072.  
  3073.     Definition:  A histogram of the sizes of the packets sent on the
  3074.  
  3075.  
  3076.  
  3077. Partridge & Trewitt                                            [Page 55]
  3078.  
  3079. RFC 1024                    HEMS Definitions                October 1987
  3080.  
  3081.  
  3082.         connection (useful for catching cases of silly-window syndrome).
  3083.         This histogram is an range histogram, measuring the number of
  3084.         segments whose size fell into a give range.  The histogram
  3085.         histValue field contains a segment size, and the histCount
  3086.         field contains the number of segments between this size and
  3087.         the next largest size.
  3088.  
  3089.     Object Status:  Useful.
  3090.  
  3091. The IpTransportLayer Dictionary: EgpValues
  3092.  
  3093.     The EgpValues dictionary stores information about the workings of
  3094.     the Exterior Gateway Protocol, defined in RFC-904.  The format of
  3095.     the dictionary is shown below.
  3096.  
  3097.             EgpValues ::= SET {
  3098.                 egpState  [0] IMPLICIT INTEGER,
  3099.                           [1] IMPLICIT EgpParam,
  3100.                           [2] IMPLICIT EgpStats OPTIONAL,
  3101.               egpPeerData [3] IMPLICIT SET of EgpPeer
  3102.             }
  3103.  
  3104.  
  3105.     OBJECT:  EgpValues
  3106.  
  3107.     Type:  SET
  3108.  
  3109.     Definition:  See above.
  3110.  
  3111.     Object Status:  Required in entities which support EGP.
  3112.  
  3113.     The definitions of the subdictionaries of this dictionary are given
  3114.     below.
  3115.  
  3116.  
  3117.     OBJECT:  egpState
  3118.  
  3119.     Type:  INTEGER
  3120.  
  3121.     Definition:  The state of the EGP system.  The state values are:
  3122.  
  3123.                         0 -- Idle
  3124.                         1 -- Acquisition
  3125.                         2 -- Down
  3126.                         3 -- Up
  3127.                         4 -- Cease
  3128.  
  3129.     These values are taken directly from RFC-904.
  3130.  
  3131.  
  3132.  
  3133. Partridge & Trewitt                                            [Page 56]
  3134.  
  3135. RFC 1024                    HEMS Definitions                October 1987
  3136.  
  3137.  
  3138. The IpTransportLayer Dictionary: EgpValues/EgpParam
  3139.  
  3140.     The EgpParam dictionary stores the various EGP parameters.  The
  3141.     format of the dictionary is shown below.
  3142.  
  3143.             EgpParam ::= SET {
  3144.                 p1    [0] IMPLICIT INTEGER,
  3145.                 p2    [1] IMPLICIT INTEGER,
  3146.                 p3    [2] IMPLICIT INTEGER,
  3147.                 p4    [3] IMPLICIT INTEGER,
  3148.                 p5    [4] IMPLICIT INTEGER,
  3149.                 ipID  [5] IMPLICIT Counter OPTIONAL
  3150.             }
  3151.  
  3152.     OBJECT:  EgpParam
  3153.  
  3154.     Type:  SET
  3155.  
  3156.     Definition:  See above.
  3157.  
  3158.     The definition of the fields of the dictionary are given below.  All
  3159.     the definitions are taken from RFC-904.
  3160.  
  3161.  
  3162.     OBJECT:  p1
  3163.  
  3164.     Type:  INTEGER
  3165.  
  3166.     Definition:  Minimum interval acceptable between successive Hello
  3167.         commands received.
  3168.  
  3169.     Operations on Object:  The defaults except as noted below.
  3170.  
  3171.         SET:  The set command is optionally defined on this object.
  3172.  
  3173.     OBJECT:  p2
  3174.  
  3175.     Type:  INTEGER
  3176.  
  3177.     Definition:  Minimum interval acceptable between successive Poll
  3178.         commands received.
  3179.  
  3180.     Operations on Object:  The defaults except as noted below.
  3181.  
  3182.         SET:  The set command is optionally defined on this object.
  3183.  
  3184.  
  3185.     OBJECT:  p3
  3186.  
  3187.  
  3188.  
  3189. Partridge & Trewitt                                            [Page 57]
  3190.  
  3191. RFC 1024                    HEMS Definitions                October 1987
  3192.  
  3193.  
  3194.     Type:  INTEGER
  3195.  
  3196.     Definition:  Interval between Request or Cease command
  3197.         retransmissions.
  3198.  
  3199.     Operations on Object:  The defaults except as noted below.
  3200.  
  3201.         SET:  The set command is optionally defined on this object.
  3202.  
  3203.  
  3204.     OBJECT:  p4
  3205.  
  3206.     Type:  INTEGER
  3207.  
  3208.     Definition:  Interval during which state variables are maintained in
  3209.         the absence of commands or response in the Down and Up states.
  3210.  
  3211.     Operations on Object:  The defaults except as noted below.
  3212.  
  3213.     SET:  The set command is optionally defined on this object.
  3214.  
  3215.  
  3216.     OBJECT:  p5
  3217.  
  3218.     Type:  INTEGER
  3219.  
  3220.     Definition:  Interval during which state variables are maintained in
  3221.         the absence of commands or response in the Acquisition and Cease
  3222.         states.
  3223.  
  3224.     Operations on Object:  The defaults except as noted below.
  3225.  
  3226.         SET:  The set command is optionally defined on this object.
  3227.  
  3228.  
  3229.     OBJECT: ipID
  3230.  
  3231.     Type: Counter
  3232.  
  3233.     Definition:  The next IP packet ID identifier to be used by the EGP
  3234.         code.
  3235.  
  3236.     Object Status: Required if the EGP code generates its own IP
  3237.         identifiers.
  3238.  
  3239.  
  3240. The IpTransportLayer Dictionary: EgpValues/EgpStats
  3241.  
  3242.  
  3243.  
  3244.  
  3245. Partridge & Trewitt                                            [Page 58]
  3246.  
  3247. RFC 1024                    HEMS Definitions                October 1987
  3248.  
  3249.  
  3250.     The EgpStats dictionary keeps statistics about the use of EGP on
  3251.     this entity.  The form of the dictionary is shown below.
  3252.  
  3253.             EgpStats ::= SET {
  3254.                 inputPktCount   [1] IMPLICIT Counter,
  3255.                 inputPktErrors  [2] IMPLICIT Counter,
  3256.                 inputPktTypes   [3] IMPLICIT Histogram OPTIONAL,
  3257.                 outputPktCount  [4] IMPLICIT Counter,
  3258.                 outputPktErrors [5] IMPLICIT Counter,
  3259.                 outputPktTypes  [6] IMPLICIT Histogram OPTIONAL,
  3260.                 egpTraffic      [7] IMPLICIT TrafficMatrix OPTIONAL
  3261.             }
  3262.  
  3263.  
  3264.     OBJECT:  EgpStats
  3265.  
  3266.     Type:  SET
  3267.  
  3268.     Definition:  See above.
  3269.  
  3270.  
  3271.     The definitions of the objects in this dictionary are given below.
  3272.  
  3273.  
  3274.     OBJECT:  inputPktCount
  3275.  
  3276.     Type: Counter
  3277.  
  3278.     Definition:  The number of EGP packets received including those that
  3279.         proved to be in error.
  3280.  
  3281.  
  3282.     OBJECT:  inputPktErrors
  3283.  
  3284.     Type:  Counter
  3285.  
  3286.     Definition:  The number of EGP packets received which proved to be
  3287.         in error.  This value subtracted from inputPktCount should give
  3288.         the number of valid EGP packets received.
  3289.  
  3290.  
  3291.     OBJECT:  inputPktTypes
  3292.  
  3293.     Type:  Histogram
  3294.  
  3295.     Definition:  A histogram of types of valid EGP messages received.
  3296.         The histogram histValue field contains the message type number,
  3297.         and the histCount field contains the number of messages of
  3298.  
  3299.  
  3300.  
  3301. Partridge & Trewitt                                            [Page 59]
  3302.  
  3303. RFC 1024                    HEMS Definitions                October 1987
  3304.  
  3305.  
  3306.         this type which have been received.
  3307.  
  3308.     Object Status:  Useful.
  3309.  
  3310.  
  3311.     OBJECT:  outputPktCount
  3312.  
  3313.     Type:  Counter
  3314.  
  3315.     Definition:  The total number of EGP packets that the entity
  3316.         attempted to send (including those that failed due to lack of
  3317.         buffers, a missing route or other transient transmission
  3318.         problems).
  3319.  
  3320.     OBJECT:  outputPktErrors
  3321.  
  3322.     Type:  Counter
  3323.  
  3324.     Definition:  The number of EGP packets which the entity could not
  3325.         send due to transmission problems such as the lack of buffers,
  3326.         a missing route or other transient transmission problems.
  3327.         This value is not required to include errors which the EGP
  3328.         layer could not reasonably be expected to detect such as
  3329.         damage to the packet in transit.  Subtracting this value from
  3330.         the outputPktCount field should give the number of EGP packets
  3331.         the entity believes it successfully sent.
  3332.  
  3333.  
  3334.     OBJECT:  outputPktTypes
  3335.  
  3336.     Type:  Histogram
  3337.  
  3338.     Definition:  A histogram of EGP messages types sent, including those
  3339.         that later failed to be transmitted.  The histogram histValue
  3340.         field contains the message type number, and the histCount field
  3341.         contains the number of messages of this type which have been sent.
  3342.  
  3343.     Object Status:  Useful.
  3344.  
  3345.  
  3346.  
  3347.     OBJECT:  egpTraffic
  3348.  
  3349.     Type:  TrafficMatrix
  3350.  
  3351.     Definition:  All EGP traffic which has originated on this machine.
  3352.         The source address in the traffic matrix should be the interface
  3353.         from which the packet was sent.  The destination is the address
  3354.  
  3355.  
  3356.  
  3357. Partridge & Trewitt                                            [Page 60]
  3358.  
  3359. RFC 1024                    HEMS Definitions                October 1987
  3360.  
  3361.  
  3362.         to which the packet is to finally be delivered (not an
  3363.         intermediate hop).
  3364.  
  3365.     Object Status:  Useful.
  3366.  
  3367.  
  3368. The IpTransportLayer Dictionary: EgpValues/EgpPeer
  3369.  
  3370.     The egpPeerData field of the EgpValues dictionary is a set of
  3371.     EgpPeer structures which contain the state variables for a
  3372.     particular EGP neighbor.  The form of the EgpPeer structure is shown
  3373.     below.
  3374.  
  3375.             EgpPeer ::= SET {
  3376.                 r       [0] IMPLICIT Counter,
  3377.                 s       [1] IMPLICIT Counter,
  3378.                 t1      [2] IMPLICIT INTEGER,
  3379.                 t2      [3] IMPLICIT INTEGER,
  3380.                 t3      [4] IMPLICIT INTEGER,
  3381.                 m       [5] IMPLICIT BOOLEAN,
  3382.                 timer1  [6] IMPLICIT INTEGER,
  3383.                 timer2  [7] IMPLICIT INTEGER,
  3384.                 timer3  [8] IMPLICIT INTEGER,
  3385.                 addr    [9] IMPLICIT IpAddress
  3386.             }
  3387.  
  3388.  
  3389.     OBJECT:  EgpPeer
  3390.  
  3391.     Type:  SET
  3392.  
  3393.     Definition:  The state information for a given EGP neighbor.
  3394.  
  3395.     The definition of each field is given below.
  3396.  
  3397.  
  3398.     OBJECT:  r
  3399.  
  3400.     Type:  Counter
  3401.  
  3402.     Definition:  The receive sequence number as defined in RFC-904.
  3403.  
  3404.  
  3405.     OBJECT:  s
  3406.  
  3407.     Type:  Counter
  3408.  
  3409.     Definition:  The send sequence number as defined in RFC-904.
  3410.  
  3411.  
  3412.  
  3413. Partridge & Trewitt                                            [Page 61]
  3414.  
  3415. RFC 1024                    HEMS Definitions                October 1987
  3416.  
  3417.  
  3418.     OBJECT:  t1
  3419.  
  3420.     Type:  INTEGER
  3421.  
  3422.     Definition:  The interval between Hello command retransmissions as
  3423.         defined in RFC-904.
  3424.  
  3425.     OBJECT:  t2
  3426.  
  3427.     Type:  INTEGER
  3428.  
  3429.     Definition:  The interval between Poll command retransmissions as
  3430.         defined in RFC-904.
  3431.  
  3432.     OBJECT:  t3
  3433.  
  3434.     Type:  INTEGER
  3435.  
  3436.     Definition:  The interval during which neighbor-reachability
  3437.         indications are counted, as defined in RFC-904.
  3438.  
  3439.     OBJECT:  m
  3440.  
  3441.     Type:  BOOLEAN
  3442.  
  3443.     Definition:  The Hello Polling mode.  True if in active mode, false
  3444.         if in passive mode.
  3445.  
  3446.     Operations on Object:  The defaults except as noted below.
  3447.  
  3448.         SET:  Optionally defined to change the Hello Polling mode.
  3449.  
  3450.     OBJECT:  timer1
  3451.  
  3452.     Type:  INTEGER
  3453.  
  3454.     Definition:  The value of timer 1 as defined in RFC-904.
  3455.  
  3456.  
  3457.     OBJECT:  timer2
  3458.  
  3459.     Type:  INTEGER
  3460.  
  3461.     Definition:  The value of timer 2 as defined in RFC-904.
  3462.  
  3463.  
  3464.     OBJECT:  timer3
  3465.  
  3466.  
  3467.  
  3468.  
  3469. Partridge & Trewitt                                            [Page 62]
  3470.  
  3471. RFC 1024                    HEMS Definitions                October 1987
  3472.  
  3473.  
  3474.     Type:  INTEGER
  3475.  
  3476.     Definition:  The value of timer 3 as defined in RFC-904.
  3477.  
  3478.  
  3479.     OBJECT:  addr
  3480.  
  3481.     Type:  IpAddress
  3482.  
  3483.     Definition:  The IP address of the neighbor.
  3484.  
  3485. The IpTransportLayer Dictionary: UdpValues
  3486.  
  3487.     The UdpValues dictionary stores all information on the User Datagram
  3488.     Protocol, defined in RFC-768.  The format of the dictionary is shown
  3489.     below.
  3490.  
  3491.             UdpValues ::= [17] IMPLICIT SET OPTIONAL {
  3492.                 ipID        [0] IMPLICIT Counter OPTIONAL,
  3493.                             [1] IMPLICIT UdpStats,
  3494.                 udpPortData [2] IMPLICIT SET of udpPort
  3495.             }
  3496.  
  3497.     OBJECT:  UdpValues
  3498.  
  3499.     Type:  SET
  3500.  
  3501.     Definition:  See above.
  3502.  
  3503.     Object Status:  Implementation of this dictionary is required if
  3504.         the entity supports UDP.
  3505.  
  3506.     The fields of this dictionary are given below.
  3507.  
  3508.     OBJECT:  ipID
  3509.  
  3510.     Type:  Counter
  3511.  
  3512.     Definition:  The next IP packet ID identifier to be used by the UDP
  3513.         code.
  3514.  
  3515.     Object Status:  Required if the UDP code generates its own IP
  3516.         identifiers.
  3517.  
  3518.  
  3519. The IpTransportLayer Dictionary: UdpValues/UdpStats
  3520.  
  3521.     The UdpStats dictionary stores general information about the
  3522.  
  3523.  
  3524.  
  3525. Partridge & Trewitt                                            [Page 63]
  3526.  
  3527. RFC 1024                    HEMS Definitions                October 1987
  3528.  
  3529.  
  3530.     behavior of the UDP protocol on the entity.  The format of the
  3531.     dictionary is shown below.
  3532.  
  3533.             UdpStats ::= SET {
  3534.                 inputPkts       [0] IMPLICIT Counter,
  3535.                 inputPktErrors  [1] IMPLICIT Counter,
  3536.                 outputPkts      [2] IMPLICIT Counter,
  3537.             }
  3538.  
  3539.     OBJECT:  UdpStats
  3540.  
  3541.     Type:  SET
  3542.  
  3543.     Definition:  See above.
  3544.  
  3545.     Object Status:  Encouraged.
  3546.  
  3547.     The fields in this dictionary are defined below.
  3548.  
  3549.  
  3550.     OBJECT:  inputPkts
  3551.  
  3552.     Type:  Counter
  3553.  
  3554.     Definition:  The total number of UDP packets received at this entity
  3555.         including any errors.
  3556.  
  3557.     Object Status:  Required if the UdpStats dictionary is implemented.
  3558.  
  3559.  
  3560.     OBJECT:  inputPktsErrors
  3561.  
  3562.     Type:  Counter
  3563.  
  3564.     Definition:  The number of UDP packets which could not be delivered
  3565.         because of format errors, data corruption or because there was no
  3566.         application at the destination port.
  3567.  
  3568.     Object Status:  Required if the UdpStats dictionary is implemented.
  3569.  
  3570.  
  3571.     OBJECT:  outputPkts
  3572.  
  3573.     Type:  Counter
  3574.  
  3575.     Definition:  The total number of UDP segments sent from this entity.
  3576.  
  3577.     Object Status:  Required if the UdpStats dictionary is implemented.
  3578.  
  3579.  
  3580.  
  3581. Partridge & Trewitt                                            [Page 64]
  3582.  
  3583. RFC 1024                    HEMS Definitions                October 1987
  3584.  
  3585.  
  3586. The IpTransportLayer Dictionary: UdpValues/udpPortData
  3587.  
  3588.     The udpPortData structure stores information about individual UDP
  3589.     applications.  The udpPortData is represented as a set of records,
  3590.     udpPorts, which track the behavior of individual ports.  The format
  3591.     of both structures are shown below.
  3592.  
  3593.             udpPortData    [1] IMPLICIT SET of UdpPort
  3594.  
  3595.             UdpPort ::=  [0] IMPLICIT SET {
  3596.                 localAddress     [0] IMPLICIT IpAddress,
  3597.                 localPort        [1] IMPLICIT INTEGER,
  3598.                 foreignAddress   [2] IMPLICIT IpAddress OPTIONAL,
  3599.                 foreignPort      [3] IMPLICIT INTEGER OPTIONAL,
  3600.                 maxPktSize       [4] IMPLICIT INTEGER,
  3601.                 pktsRcvd         [5] IMPLICIT Counter,
  3602.                 octetRcvd        [6] IMPLICIT Counter OPTIONAL,
  3603.                 pktsSent         [7] IMPLICIT Counter,
  3604.                 octetSent        [8] IMPLICIT Counter OPTIONAL,
  3605.             }
  3606.  
  3607.     OBJECT:  udpPortData
  3608.  
  3609.     Type:  SET of udpPort
  3610.  
  3611.     Definition:  See above.
  3612.  
  3613.  
  3614.     OBJECT:  UdpPort
  3615.  
  3616.     Type:  SET
  3617.  
  3618.     Definition:  See above.
  3619.  
  3620.     Operations on Object: The defaults except as noted below.
  3621.  
  3622.         GET-MATCH.  Defined on any combination of the values of
  3623.             localAddress, localPort, foreignAddress and foreignPort.
  3624.             Returns all ports which match the template.
  3625.  
  3626.     The meaning of the individual fields of the udpPort record are given
  3627.     below.
  3628.  
  3629.  
  3630.     OBJECT:  localAddress
  3631.  
  3632.     Type:  IpAddress
  3633.  
  3634.  
  3635.  
  3636.  
  3637. Partridge & Trewitt                                            [Page 65]
  3638.  
  3639. RFC 1024                    HEMS Definitions                October 1987
  3640.  
  3641.  
  3642.     Definition:  The local IP address of the port.  May be the default
  3643.         IP address if records are accepted from any interface.
  3644.  
  3645.  
  3646.     OBJECT:  localPort
  3647.  
  3648.     Type:  INTEGER
  3649.  
  3650.     Definition:  The local port number.
  3651.  
  3652.  
  3653.     OBJECT:  foreignAddress
  3654.  
  3655.     Type:  IpAddress
  3656.  
  3657.     Definition:  Some UDP implementations permit applications to specify
  3658.         the remote address from which packets will be accepted.  In such
  3659.         implementations, this field may be used to return the remote IP
  3660.         address.  If this value is set to the default IP address, then
  3661.         packets from any host are accepted.  The default IP address
  3662.         indicates that the application has not specified the remote
  3663.         address (but could if it chose).
  3664.  
  3665.     Object Status:  Required in entities which permit applications to
  3666.         specify the remote address.
  3667.  
  3668.  
  3669.     OBJECT:  foreignPort
  3670.  
  3671.     Type:  INTEGER
  3672.  
  3673.     Definition:  Some UDP implementations permit applications to specify
  3674.         the remote address from which packets will be accepted.  In such
  3675.         implementations, this field may be used to return the remote
  3676.         port.  If this value is set to 0, packets from any remote port
  3677.         are accepted.
  3678.  
  3679.     Object Status:  Required in entities which permit applications to
  3680.         specify the remote port.
  3681.  
  3682.     OBJECT:  maxPktSize
  3683.  
  3684.     Type:  INTEGER
  3685.  
  3686.     Definition:  The maximum UDP packet size, if any, supported by this
  3687.         host.
  3688.  
  3689.     Object Status:  Required if there is a limit on the UDP packet size.
  3690.  
  3691.  
  3692.  
  3693. Partridge & Trewitt                                            [Page 66]
  3694.  
  3695. RFC 1024                    HEMS Definitions                October 1987
  3696.  
  3697.  
  3698.     OBJECT:  pktsRcvd
  3699.  
  3700.     Type:  Counter
  3701.  
  3702.     Definition:  The total number of packets received on this port during
  3703.         the lifetime of this application (i.e., application which opened
  3704.         this port).
  3705.  
  3706.  
  3707.     OBJECT:  octetsRcvd
  3708.  
  3709.     Type:  Counter
  3710.  
  3711.     Definition:  The total number of octets received at this port.
  3712.  
  3713.  
  3714.     OBJECT:  pktsSent
  3715.  
  3716.     Type:  Counter
  3717.  
  3718.     Definition:  The total number of packets sent on this port during the
  3719.         lifetime of this application (i.e., the application which opened
  3720.         this port).
  3721.  
  3722.  
  3723.     OBJECT:  octetsSent
  3724.  
  3725.     Type:  Counter
  3726.  
  3727.     Definition:  The total number of octets sent on this port during the
  3728.         lifetime of this application (i.e., the application which opened
  3729.         this port).
  3730.  
  3731.  
  3732. The IpTransportLayer Dictionary:  HmpValues
  3733.  
  3734.      The HmpValues dictionary stores all information on the Host
  3735.      Monitoring Protocol, defined in RFC-869.  Since HEMS is designed to
  3736.      replace HMP, the definition of this dictionary has been deferred
  3737.      until a clear need for it is demonstrated.
  3738.  
  3739.  
  3740. The IpTransportLayer Dictionary:  RdpValues
  3741.  
  3742.      The RdpValues dictionary stores all information on the Reliable
  3743.      Data Protocol (RDP).  Since RDP is currently being tested and
  3744.      revised, the definition of this dictionary is left for further
  3745.      study.
  3746.  
  3747.  
  3748.  
  3749. Partridge & Trewitt                                            [Page 67]
  3750.  
  3751. RFC 1024                    HEMS Definitions                October 1987
  3752.  
  3753.  
  3754. The IpTransportLayer Dictionary:  NetbltValues
  3755.  
  3756.      The NetbltValues dictionary stores all information on the Network
  3757.      Block Transfer protocol.  Since Netblt is currently being tested
  3758.      and revised, the definition of this dictionary is left for further
  3759.      study.
  3760.  
  3761.  
  3762. The IpApplications Dictionary
  3763.  
  3764.      The IpApplications dictionary stores information about networking
  3765.      applications whose operations may affect the proper operation of
  3766.      the network.  Examples of such applications might be domain
  3767.      nameservers or distributed routing agents (such as gated or
  3768.      routed).  The definition of this dictionary is left for further
  3769.      study.
  3770.  
  3771.  
  3772. NOTES ON RETRIEVAL OF OBJECTS
  3773.  
  3774.      It is assumed in this system that the query processor is only one
  3775.      of many concurrently running processes on an entity, and that the
  3776.      operations of the other processes may affect the values of the
  3777.      objects managed by the query processor.  To permit this
  3778.      concurrency, the query processor is not required to keep the values
  3779.      frozen during the execution of a query.  As a result, related
  3780.      values may change during the course of the query's execution.
  3781.      Applications should be prepared for this possibility.
  3782.  
  3783.      In several places, specific mathematical relations between objects
  3784.      have been specified, for example, that object X minus object Y
  3785.      should yield some well-defined value.  Note that in many cases,
  3786.      objects X and Y are roll-over counters, in which case these
  3787.      relations are only valid modulo the precision of the counter.  This
  3788.      is acceptable.  The relationships are only intended to clarify the
  3789.      association between objects.
  3790.  
  3791.  
  3792. EVENTS
  3793.  
  3794.      In the remainder of this memo we present the format and definition
  3795.      of event messages which are unsolicited updates sent from entities
  3796.      to management centers.
  3797.  
  3798.      This section needs much further work.  The authors provide this
  3799.      section to illustrate how the trap mechanism works.  However, much
  3800.      more research must be done into the questions of what events need
  3801.      to be reported, and what information they must carry with them
  3802.  
  3803.  
  3804.  
  3805. Partridge & Trewitt                                            [Page 68]
  3806.  
  3807. RFC 1024                    HEMS Definitions                October 1987
  3808.  
  3809.  
  3810.      before this section can be completed.  The authors welcome any
  3811.      advice from the community on this subject.
  3812.  
  3813.  
  3814. Format of Event Messages
  3815.  
  3816.      Event messages have the same format as replies; they are a sequence
  3817.      of objects.  The only difference between a event message and a
  3818.      regular reply to a query is that the event message is labelled as a
  3819.      event in the HEMP message header and the first object in the event
  3820.      message is a special event leader describing the event.  All
  3821.      objects after the event message are standard objects stored by the
  3822.      entity which might be useful to a monitoring center in
  3823.      understanding the machine state which caused the event.  Each event
  3824.      has a certain number of objects that it must return.  Additional
  3825.      objects may be returned by loading instructions into the
  3826.      eventExecution buffer of the relevant eventEntry.
  3827.  
  3828.      The format of the event leader is shown below:
  3829.  
  3830.              EventLeader ::= [APPLICATION 1024] IMPLICIT SEQUENCE {
  3831.                  eventCode INTEGER,
  3832.                  eventIndex INTEGER,
  3833.                  eventThreshold INTEGER,
  3834.                  eventTime TimeStamp,
  3835.                  eventDescr IA5STRING
  3836.              }
  3837.  
  3838.  
  3839.      The eventCode is a number which indicates the type of event.  The
  3840.      eventCodes are defined below.
  3841.  
  3842.      The eventIndex is an implementation specific value.  It is
  3843.      considered good practice to make sure that a particular event is
  3844.      only generated in one place.  It may be the case that certain HEMS
  3845.      generic events (for example, "no buffer space") may be generated by
  3846.      more than one place in an entity's code.  To allow implementors and
  3847.      network managers to determine where the event is actually being
  3848.      generated, implementors should make sure that a distinct eventIndex
  3849.      is assigned to each location in the code that generates a
  3850.      particular event.
  3851.  
  3852.      The eventThreshold is the value of the event threshold when the
  3853.      event was sent.
  3854.  
  3855.      The eventTime indicates when the trap was generated.
  3856.  
  3857.      The eventDescr is a text string which describes the event.  This
  3858.  
  3859.  
  3860.  
  3861. Partridge & Trewitt                                            [Page 69]
  3862.  
  3863. RFC 1024                    HEMS Definitions                October 1987
  3864.  
  3865.  
  3866.      description should explain the general problem (e.g., "no buffer
  3867.      space") and may also, optionally, include additional information
  3868.      about why this particular event was generated (e.g., "could not
  3869.      send ICMP redirect").
  3870.  
  3871.  
  3872. Event Definitions
  3873.  
  3874.      The remainder of this memo presents a few generic events, which are
  3875.      presented for illustration only.  Implementors interested in
  3876.      supporting events should contact the authors to help work out a
  3877.      more comprehensive set of definitions.
  3878.  
  3879.      The format of the event definitions is:
  3880.  
  3881.      EVENT CODE:  The event code number.
  3882.  
  3883.      Definition:  Defines the event.
  3884.  
  3885.          Related Objects: The list of related objects which *must* be
  3886.          returned following the event header.  All objects should be
  3887.          returned as fully qualified objects (with ASN.1 codes tracing
  3888.          a complete path from the root object dictionary).  If no
  3889.          objects are specified, then no related objects are required.
  3890.  
  3891.      Event Status:  Events are either required of all conforming
  3892.              implementations, required if the entity supports a
  3893.              particular feature (e.g., TCP events) or optional.
  3894.  
  3895.      Notes: Any additional notes about the event.
  3896.  
  3897.  
  3898. List of Events
  3899.  
  3900.  
  3901.          The next few event codes are for system (as opposed to more
  3902.          network oriented) events.
  3903.  
  3904.          EVENT CODE:  0
  3905.  
  3906.          Definition:  Unused
  3907.  
  3908.  
  3909.          EVENT CODE:  1
  3910.  
  3911.          Definition:  The entity has rebooted.
  3912.  
  3913.          Related Objects:   An INTEGER which is the highest HEMP
  3914.  
  3915.  
  3916.  
  3917. Partridge & Trewitt                                            [Page 70]
  3918.  
  3919. RFC 1024                    HEMS Definitions                October 1987
  3920.  
  3921.  
  3922.              messageID reached by the trap system before the system
  3923.              crashed.
  3924.  
  3925.          EVENT CODE:  2
  3926.  
  3927.          Definition:  The entity is about to go into test mode.
  3928.  
  3929.  
  3930.          EVENT CODE:  3
  3931.  
  3932.          Definition:  The entity is about to reset.
  3933.  
  3934.  
  3935.          EVENT CODE:  4
  3936.  
  3937.          Definition:  The entity is about to reboot.
  3938.  
  3939.  
  3940.          EVENT CODE:  5
  3941.  
  3942.          Definition:  The entity is about to halt.
  3943.  
  3944.  
  3945.          EVENT CODE:  6
  3946.  
  3947.          Definition:  The system is close to depleting its packet buffer
  3948.              space.
  3949.  
  3950.          Event Status:  optional
  3951.  
  3952.  
  3953.          EVENT CODE:  7
  3954.  
  3955.          Definition:  The system has depleted its packet buffer space.
  3956.  
  3957.  
  3958.          EVENT CODE:  8
  3959.  
  3960.          Definition:  The system has depleted a non-packet buffer space.
  3961.  
  3962.          Note:  The two trap codes above do not deal neatly with
  3963.              systems which have multiple buffer pools, each of which
  3964.              may be depleted separately, with very different effects
  3965.              on the entity.
  3966.  
  3967.  
  3968.          The next set of event codes apply to events related to network
  3969.          interfaces.
  3970.  
  3971.  
  3972.  
  3973. Partridge & Trewitt                                            [Page 71]
  3974.  
  3975. RFC 1024                    HEMS Definitions                October 1987
  3976.  
  3977.  
  3978.          EVENT CODE:  1024
  3979.  
  3980.          Definition:  The given interface has just come up.
  3981.  
  3982.          Related Objects:  The InterfaceData structure for the
  3983.              interface.
  3984.  
  3985.          EVENT CODE:  1025
  3986.  
  3987.          Definition:  The given interface has just been taken down.
  3988.  
  3989.          Related Objects:  The InterfaceData structure for the
  3990.              interface.
  3991.  
  3992.          EVENT CODE:  1026
  3993.  
  3994.          Definition:  The given interface has just gone into test mode.
  3995.  
  3996.          Related Objects:  The InterfaceData structure for the
  3997.              interface.
  3998.  
  3999.          The next set of event codes are used to report IP-level errors.
  4000.  
  4001.  
  4002.          EVENT CODE:  2048
  4003.  
  4004.          Definition:  Unable to route IP packet.
  4005.  
  4006.  
  4007.          EVENT CODE:  2049
  4008.  
  4009.          Definition:  Bad IP checksum.
  4010.  
  4011.  
  4012.          EVENT CODE:  2050
  4013.  
  4014.          Definition:  An IP packet with a bad header was received (for
  4015.              example, with a broadcast or multicast IP address as the
  4016.              source, or the wrong IP version number, or a header length
  4017.              which is too short).
  4018.  
  4019.          Related Objects:  Should return the IP header of the packet.
  4020.              Note that an IP header type has not yet been defined.
  4021.  
  4022.  
  4023.          EVENT CODE:  2051
  4024.  
  4025.          Definition:  Packet for unsupported IP transport protocol.
  4026.  
  4027.  
  4028.  
  4029. Partridge & Trewitt                                            [Page 72]
  4030.  
  4031. RFC 1024                    HEMS Definitions                October 1987
  4032.  
  4033.  
  4034.          Related Objects:  Should return the IP header of the packet.
  4035.              Note that an IP header type has not yet been defined.
  4036.  
  4037.  
  4038.          EVENT CODE:  2052
  4039.  
  4040.          Definition:  A stunted IP packet was received (smaller than
  4041.              the IP length says it should be).
  4042.  
  4043.          Related Objects:  Should return the IP header of the packet.
  4044.              Note that an IP header type has not yet been defined.
  4045.  
  4046.  
  4047.          EVENT CODE:  2053
  4048.  
  4049.          Definition:  An oversize IP packet was received (larger than
  4050.              the IP length says it should be).
  4051.  
  4052.          Related Objects:  Should return the IP header of the packet.
  4053.              Note that an IP header type has not yet been defined.
  4054.  
  4055.  
  4056.          EVENT CODE:  2054
  4057.  
  4058.          Definition:  A good IP packet was discarded (usually to free
  4059.              up buffer space).
  4060.  
  4061.          Related Objects:  Should return the IP header of the packet.
  4062.              Note that an IP header type has not yet been defined.
  4063.  
  4064.  
  4065.          EVENT CODE:  2055
  4066.  
  4067.          Definition:  An IP packet's time-to-live as expired.
  4068.  
  4069.          Related Objects:  Should return the IP header of the packet.
  4070.              Note that an IP header type has not yet been defined.
  4071.  
  4072.  
  4073.          EVENT CODE:  2056
  4074.  
  4075.          Definition:  This IP fragment has timed out.
  4076.  
  4077.          Related Objects:  Should return the header of the fragment.
  4078.              Note that an IP header type has not yet been defined.
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085. Partridge & Trewitt                                            [Page 73]
  4086.  
  4087. RFC 1024                    HEMS Definitions                October 1987
  4088.  
  4089.  
  4090. AREAS FOR FURTHER STUDY
  4091.  
  4092.      There are several parts of this document that could use additional
  4093.      study.  Comments from readers are welcome.
  4094.  
  4095.      The whole event system needs thorough examination.  It is not clear
  4096.      that the event control mechanism strikes the proper balance between
  4097.      sufficient flexibility to allow monitoring centers to customize
  4098.      their event stream, and keeping the basic mechanism simple.
  4099.      Further, the problem of defining generic events for all entities is
  4100.      an immense task.  Finally, the system of appending required values
  4101.      after traps, followed by optional values read from the data tree
  4102.      feels a bit cumbersome.  It would be nice if all values were in the
  4103.      same data space.
  4104.  
  4105.      Several readers have suggested it might make more sense to keep TCP
  4106.      connection parameters on a per-connection basis rather than
  4107.      globally.
  4108.  
  4109.      The method for specifying the TCP round-trip time algorithm needs
  4110.      to be refined.  The expression syntax should be sufficiently
  4111.      general that all round-trip-time-related algorithms (e.g., those
  4112.      for time or routing protocols) can be expressed in it.
  4113.  
  4114.      Much more research could be done into what information needs to be
  4115.      gathered to effectively monitor a network.
  4116.  
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141. Partridge & Trewitt                                            [Page 74]
  4142.  
  4143.